国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery scrollFix滾動定位插件

2019-11-20 12:47:55
字體:
供稿:網(wǎng)友

當(dāng)用戶向上或向下滾動頁面到一定位置時,目標(biāo)元素開始固定定位(position:fixed),當(dāng)回滾到原位置時目標(biāo)元素恢復(fù)到原狀態(tài),可以定制觸發(fā)滾動相對屏幕位置和觸發(fā)滾動方向,兼容IE6

【插件參數(shù)】

$(".target_element").scrollFix( [ "top" | "bottom" | length(可以為負,表示相對bottom), [ "top" | "bottom" ] ]);

第一個參數(shù): 可選,默認為"top",當(dāng)目標(biāo)元素到了屏幕相對的位置時開始觸發(fā)固定,可以填一個數(shù)值,如100,-200 ,負值表示相對于屏幕下方

第一個參數(shù): 可選,默認為"top",表示觸發(fā)固定的滾動方向,"top"表示從上向下滾動時觸發(fā),"bottom"表示從下向上滾動時觸發(fā)

【下載插件】scrollFix(VeVB.COm).rar

復(fù)制代碼 代碼如下:

<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="scrollFix.js"></script>
<p><span style="color: #808000;">【代碼示例】</span></p>
<div class="d">
<div class="demo" style="background: #ff6000;">$("#a").scrollFix(-200);
<div>滾動到距離下面200px時開始固定,默認從上到下觸發(fā)</div>
</div>
 </div>
<div class="d">
<div class="demo" style="background: #82BF00;">$("#b").scrollFix(200,"bottom");
<div>滾動到距離上面200px時開始固定,指定"bottom"從下到上觸發(fā)</div>
</div>
 </div>
<div class="d">
<div class="demo" style="background: #0C9CAE;">$("#c").scrollFix("top","top");
<div>滾動到距離上面0時開始固定,指定"top"從上到下觸發(fā)</div>
</div>
 </div>
<div class="d">
<div class="demo" style="background: #478FCE;">$("#d").scrollFix("bottom","top");
<div>滾動到距離下面0時開始固定,指定"bottom"從下到上觸發(fā)</div>
</div>
</div>

實現(xiàn)代碼:
復(fù)制代碼 代碼如下:

<script type="text/javascript">// <![CDATA[
window.onload=function(){
  $(".demo:eq(0)").scrollFix(-200);
  $(".demo:eq(1)").scrollFix(200,"bottom");
  $(".demo:eq(2)").scrollFix("top","top");
  $(".demo:eq(3)").scrollFix("bottom","bottom");
}
// ]]></script>

核心代碼:

;(function($) { jQuery.fn.scrollFix = function(height, dir) {  height = height || 0;  height = height == "top" ? 0 : height;  return this.each(function() {   if (height == "bottom") {    height = document.documentElement.clientHeight - this.scrollHeight;   } else if (height < 0) {    height = document.documentElement.clientHeight - this.scrollHeight + height;   }   var that = $(this),    oldHeight = false,    p, r, l = that.offset().left;   dir = dir == "bottom" ? dir : "top"; //默認滾動方向向下   if (window.XMLHttpRequest) { //非ie6用fixed    function getHeight() { //>=0表示上面的滾動高度大于等于目標(biāo)高度     return (document.documentElement.scrollTop || document.body.scrollTop) + height - that.offset().top;    }    $(window).scroll(function() {     if (oldHeight === false) {      if ((getHeight() >= 0 && dir == "top") || (getHeight() <= 0 && dir == "bottom")) {       oldHeight = that.offset().top - height;       that.css({        position: "fixed",        top: height,        left: l       });      }     } else {      if (dir == "top" && (document.documentElement.scrollTop || document.body.scrollTop) < oldHeight) {       that.css({        position: "static"       });       oldHeight = false;      } else if (dir == "bottom" && (document.documentElement.scrollTop || document.body.scrollTop) > oldHeight) {       that.css({        position: "static"       });       oldHeight = false;      }     }    });   } else { //for ie6    $(window).scroll(function() {     if (oldHeight === false) { //恢復(fù)前只執(zhí)行一次,減少reflow      if ((getHeight() >= 0 && dir == "top") || (getHeight() <= 0 && dir == "bottom")) {       oldHeight = that.offset().top - height;       r = document.createElement("span");       p = that[0].parentNode;       p.replaceChild(r, that[0]);       document.body.appendChild(that[0]);       that[0].style.position = "absolute";      }     } else if ((dir == "top" && (document.documentElement.scrollTop || document.body.scrollTop) < oldHeight) || (dir == "bottom" && (document.documentElement.scrollTop || document.body.scrollTop) > oldHeight)) { //結(jié)束      that[0].style.position = "static";      p.replaceChild(that[0], r);      r = null;      oldHeight = false;     } else { //滾動      that.css({       left: l,       top: height + document.documentElement.scrollTop      })     }    });   }  }); };})(jQuery);
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 寿宁县| 金平| 汤原县| 湘西| 峨眉山市| 龙胜| 新竹市| 平利县| 天等县| 定远县| 郸城县| 敦煌市| 临汾市| 嘉荫县| 张家港市| 北川| 天峻县| 民乐县| 锦屏县| 和平县| 吴江市| 曲麻莱县| 宿松县| 博湖县| 嘉祥县| 甘德县| 日照市| 南宫市| 卫辉市| 陵川县| 商城县| 理塘县| 武功县| 平乡县| 赤峰市| 习水县| 历史| 灵川县| 伊金霍洛旗| 崇阳县| 崇义县|