jquery插件:点击拉出的右侧滑动菜单

就是一个停留在页面右侧的滑动菜单,点击可以拉出,带回调函数。宽高位置可以参数指定。插件代码如下:

(jquery的路径请自己修改)

(function($){
$.fn.sideSwitch = function(opts){

    var defaults = {
        contentWidth:‘400px‘,
        contentHeight:‘185px‘,
        btnWidth:‘30px‘,
        btnHeight:‘80px‘,
        initTop:‘‘,//初始化离浏览器顶部的距离
        extra:‘‘,//因页面布局需要额外向左移动的距离
        callback:‘‘//菜单拉出后的回调函数
        }
    var option = $.extend(defaults,opts);
    this.each(function(){//这一行的this是指$选择器选择到的对象,是一个数组
        var _this = $(this);//拿到某一个div
        var btndiv = _this.find(‘.ss_btn‘);
        var btnTop = (parseInt(option.contentHeight)-parseInt(option.btnHeight))/2;
        btndiv.css({width:option.btnWidth,height:option.btnHeight,top:btnTop,position:"absolute",cursor:"pointer"});
        var contentdiv = _this.find(‘.ss_content‘);
        var contentLeft = parseInt(option.btnWidth)+parseInt(btndiv.css(‘borderLeftWidth‘))+parseInt(btndiv.css(‘borderRightWidth‘));
        contentdiv.css({width:option.contentWidth,height:option.contentHeight,position:"relative",left:contentLeft,top:"0px"});

        var boxInitLeft = parseInt(document.body.clientWidth)-parseInt(option.btnWidth)-parseInt(btndiv.css(‘borderLeftWidth‘))-parseInt(btndiv.css(‘borderRightWidth‘))-option.extra;
        var boxInitWidth = parseInt(option.btnWidth)+parseInt(btndiv.css(‘borderLeftWidth‘))+parseInt(btndiv.css(‘borderRightWidth‘));
        _this.css({width:boxInitWidth,overflow:"hidden",position:"absolute",zIndex:999});
        if(!option.initTop){option.initTop = (parseInt(document.body.clientHeight)-parseInt(_this.css(‘height‘))-parseInt(_this.css("borderTopWidth"))-parseInt(contentdiv.css("borderTopWidth")))/2;}
        _this.css({left:boxInitLeft,top:option.initTop});

        var menuYloc = _this.offset().top; //当前窗口的相对偏移
        $(window).scroll(function (){
        var offsetTop = menuYloc + $(window).scrollTop() +"px";
        _this.animate({top : offsetTop },{ duration:600 , queue:false });
        }); 

        btndiv.click(
          function(){
              if(parseInt(_this.css("width"))<parseInt($(‘.ss_content‘).css(‘width‘))){
                  var boxNewWidth = parseInt($(‘.ss_content‘).css(‘width‘))+parseInt($(‘.ss_content‘).css(‘borderLeftWidth‘))+parseInt($(‘.ss_content‘).css(‘borderRightWidth‘))+parseInt($(‘.ss_btn‘).css(‘width‘))+parseInt($(‘.ss_btn‘).css(‘borderLeftWidth‘))+parseInt($(‘.ss_btn‘).css(‘borderRightWidth‘));

                  var boxNewLeft = parseInt(document.body.clientWidth)-boxNewWidth-option.extra;
                  _this.animate({left:boxNewLeft+‘px‘,width:boxNewWidth+"px"},"slow");
                  option.callback();
                  }
              else{
                  _this.animate({left:boxInitLeft,width:"30px"},"slow");
                  }

}
)
}); 

    }    

})(jQuery)

下面再附一个使用的demo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
*{margin:0;padding:0;}
.div{float:left;width:30%;height:300px;border:1px solid #f00;}
</style>
<script type="text/javascript" src="../../jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="jquery.sideSwitch.js"></script>
<script type="text/javascript">
$(function(){
    $(‘#box‘).sideSwitch();
    });
</script>
</head>

<body>
<div class="div">文字文字文字</div>
<div class="div">文字文字文字</div>
<div class="div">文字文字文字</div>
<div class="div">文字文字文字</div>
<div class="div">文字文字文字</div>
<div class="div">文字文字文字</div>
<div class="div">文字文字文字</div>
<div class="div">文字文字文字</div>
<div class="div">文字文字文字</div>
<div id="box"><!--侧边栏层-->
    <div class="ss_btn">
        点我
    </div>
    <div class="ss_content"> 

    内容区域            

    </div> 

</div>
<div id="mainbody"><!--主页内容-->
<p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p><p>主页的内容<p>
</div>
</body>
</html>
时间: 2024-07-29 02:42:00

jquery插件:点击拉出的右侧滑动菜单的相关文章

jquery之点击弹出图标环形菜单

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

jQuery和CSS3炫酷全屏滑动菜单特效

这是一款效果非常炫酷的jQuery和CSS3全屏推拉式滑动菜单特效插件.这个插件的效果是当点击了主菜单按钮时,全屏菜单从屏幕左侧滑出,主菜单按钮动态旋转更换图标. 下图演示了这个效果的过程: 在线演示:http://www.htmleaf.com/Demo/201502131375.html 下载地址:http://www.htmleaf.com/jQuery/Menu-Navigation/201502131374.html

html5手机端的点击弹出侧边滑动菜单代码

效果预览:http://hovertree.com/texiao/html5/19/ 本效果适用于移动设备,可以使用手机等浏览效果. 源码下载:http://hovertree.com/h/bjaf/mwvn0mxi.htm 本实例用到了toggleClass方法,请参考:http://hovertree.com/h/bjaf/attributes_toggleclass.htm 代码如下: 1 <!doctype html> 2 <html lang="zh">

jquery插件之tab标签页或滑动门

该插件乃本博客作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧. 此插件旨在实现目前较为流行的tab标签页或滑动门特效,在此插件中默认使用的是鼠标滑过事件,您也可以根据自己的实际需求将滑过事件hover改为点击事件click.整体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1

jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)

这个插件的名字elevatezoom,网址为http://www.elevateweb.co.uk/image-zoom,在github上的项目首页为https://github.com/elevateweb/elevatezoom,建议去github下载,这个网速比较快. 实现这个效果你需要准备两张图片,一张小的,一张大用于鼠标经过时候显示.然后我们只要为img标签添加data-zoom-image属性,其值为大图的地址,最后在javascript中选择该图片调用elevateZoom()就可

15款帮助你实现响应式导航的 jQuery 插件

对于我们大多数人来说,建立一个负责任的布局中最困难的方面是规划和导航的实现.由于没有真正经得起考验的通用解决方案,您可以使用的菜单设计风格将取决于正在建设的网站类型. 无论你正在建设什么类型的网站,在这篇文章中我们将向推荐一批制作响应式导航的 jQuery 插件,为您提供方便快速的解决方案. 您可能感兴趣的相关文章 Web 开发中很实用的10个效果[源码下载] 精心挑选的优秀jQuery Ajax分页插件和教程 12个让人惊叹的的创意的 404 错误页面设计 让网站动起来!12款优秀的 jQue

Jquery插件 防刷新倒计时 “点击获取验证码后60秒内禁止重新获取

Jquery插件实现"点击获取验证码后60秒内禁止重新获取(防刷新)" 效果图: 先到官网(http://plugins.jQuery.com/cookie/)下载cookie插件,放到相应文件夹,代码如下: 1 <style type="text/css"> 2 * {margin: 0; 3 padding: 0; 4 font-family: "Microsoft Yahei"; 5 } 6 .captcha-box { 7 w

jQuery插件之jquery editable plugin--点击编辑文字插件

jeditable是一个jquery插件,它的优点是可以就地编辑,并且提交到服务器处理,是一个不可多得的就地编辑插件.(注: 就地编辑,也有称即时编辑?一般的流程是这样的,当用户点击网页上的文字时,该文字就会出现在一个编辑框中,用户对文字进行修改完成后点击提交按钮,新的文本将发送到服务器上,然后表单消失,显示最新编辑的文本.),你可以通过这个演示页面来亲自体验下. 官网:http://www.appelsiini.net/projects/jeditable 基本的使用方法如下: 首先编辑一个

使用jQuery实现点击左右滑动切换特效

使用jQuery实现点击左右滑动切换特效: HTML代码如下: 1 <!--整体背景div--> 2 <div class="warp"> 3 <!--中间内容div--> 4 <div class="divContent"> 5 <div class="content"> 6 <ul class="contentUl"> 7 <li> 8 &