jquery任意位置浮动固定层插件用法实例

页面导航:首页 > 网络编程 > JavaScript > jquery任意位置浮动固定层插件用法实例

jquery任意位置浮动固定层插件用法实例

来源:互联网 作者:脚本宝典 时间:2015-06-01 13:58 【

这篇文章主要介绍了jquery任意位置浮动固定层插件用法,实例分析了jQuery浮动层插件的相关使用技巧,需要的朋友可以参考下

本文实例讲述了jquery任意位置浮动固定层插件用法。分享给大家供大家参考。具体分析如下:

说明:可以让指定的层浮动到网页上的任何位置,当滚动条滚动时它会保持在当前位置不变,不会产生闪动  

2009-06-10修改:重新修改插件实现固定浮动层的方式,使用一个大固定层来定位   
2009-07-16修改:修正IE6下无法固定在top上的问题  

09-11-5修改:当自定义层的绝对位置时,加上top为空值时的判断   
这次的方法偷自天涯新版页   
经多次测试,基本上没bug~  

调用:

1 无参数调用:默认浮动在右下角

$("#id").floatdiv();

2 内置固定位置浮动

?
1
2
3
4
5
6
7
8
9
10
11
12
//右下角 
$("#id").floatdiv("rightbottom"); 
//左下角 
$("#id").floatdiv("leftbottom"); 
//右下角 
$("#id").floatdiv("rightbottom"); 
//左上角 
$("#id").floatdiv("lefttop"); 
//右上角 
$("#id").floatdiv("righttop"); 
//居中 
$("#id").floatdiv("middle"); 

另外新添加了四个新的固定位置方法  

middletop(居中置顶)、middlebottom(居中置低)、leftmiddle、rightmiddle

3 自定义位置浮动

$("#id").floatdiv({left:"10px",top:"10px"});   
以上参数,设置浮动层在left 10个像素,top 10个像素的位置  

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
jQuery.fn.floatdiv=function(location){ 
  //判断浏览器版本 
  var isIE6=false
  var Sys = {}; 
  var ua = navigator.userAgent.toLowerCase(); 
  var s; 
  (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] : 0; 
  if(Sys.ie && Sys.ie=="6.0"){ 
    isIE6=true
  
  var windowWidth,windowHeight;//窗口的高和宽 
  //取得窗口的高和宽 
  if (self.innerHeight) { 
    windowWidth=self.innerWidth; 
    windowHeight=self.innerHeight; 
  }else if (document.documentElement&&document.documentElement.clientHeight) {
    windowWidth=document.documentElement.clientWidth; 
    windowHeight=document.documentElement.clientHeight; 
  } else if (document.body) { 
    windowWidth=document.body.clientWidth; 
    windowHeight=document.body.clientHeight; 
  
  return this.each(function(){ 
    var loc;//层的绝对定位位置 
    var wrap=$("<div></div>"); 
    var top=-1; 
    if(location==undefined || location.constructor == String){ 
      switch(location){ 
        case("rightbottom")://右下角 
          loc={right:"0px",bottom:"0px"}; 
          break
        case("leftbottom")://左下角 
          loc={left:"0px",bottom:"0px"}; 
          break;  
        case("lefttop")://左上角 
          loc={left:"0px",top:"0px"}; 
          top=0; 
          break
        case("righttop")://右上角 
          loc={right:"0px",top:"0px"}; 
          top=0; 
          break
        case("middletop")://居中置顶 
          loc={left:windowWidth/2-$(this).width()/2+"px",top:"0px"}; 
          top=0; 
          break
        case("middlebottom")://居中置低 
          loc={left:windowWidth/2-$(this).width()/2+"px",bottom:"0px"}; 
          break
        case("leftmiddle")://左边居中 
          loc={left:"0px",top:windowHeight/2-$(this).height()/2+"px"}; 
          top=windowHeight/2-$(this).height()/2; 
          break
        case("rightmiddle")://右边居中 
          loc={right:"0px",top:windowHeight/2-$(this).height()/2+"px"}; 
          top=windowHeight/2-$(this).height()/2; 
          break
        case("middle")://居中 
          var l=0;//居左 
          var t=0;//居上 
          l=windowWidth/2-$(this).width()/2; 
          t=windowHeight/2-$(this).height()/2; 
          top=t; 
          loc={left:l+"px",top:t+"px"}; 
          break
        default://默认为右下角 
          location="rightbottom"
          loc={right:"0px",bottom:"0px"}; 
          break
      
    }else
      loc=location; 
      alert(loc.bottom); 
      var str=loc.top; 
      //09-11-5修改:加上top为空值时的判断 
      if (typeof(str)!= 'undefined'){ 
        str=str.replace("px",""); 
        top=str; 
      
    
    /*fied ie6 css hack*/
    if(isIE6){ 
      if (top>=0) 
      
        wrap=$("<div style=\"top:e­xpression(documentElement.scrollTop+"+top+");\"></div>"); 
      }else
        wrap=$("<div style=\"top:e­xpression(documentElement.scrollTop+documentElement.clientHeight-this.offsetHeight);\"></div>");
      
    
    $("body").append(wrap); 
    wrap.css(loc).css({position:"fixed",z_index:"999"}); 
    if (isIE6) 
    
      wrap.css("position","absolute"); 
      //没有加这个的话,ie6使用表达式时就会发现跳动现象 
      //至于为什么要加这个,还有为什么要加nothing.txt这个,偶也不知道,希望知道的同学可以告诉我 
      $("body").css("background-attachment","fixed").css("background-image","url(n1othing.txt)"); 
    
    //将要固定的层添加到固定层里 
    $(this).appendTo(wrap); 
  }); 
};

完整实例代码点击此处本站下载

希望本文所述对大家的jQuery程序设计有所帮助。

Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<