欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jQuery scrollFix滾動定位插件

 更新時間:2015年04月01日 14:49:11   投稿:mdxy-dxy  
這篇文章主要介紹了jQuery scrollFix滾動定位插件,當用戶向上或向下滾動頁面到一定位置時,目標元素開始固定定位(position:fixed),當回滾到原位置時目標元素恢復到原狀態(tài),需要的朋友可以參考下

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

【插件參數(shù)】

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

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

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

【下載插件】scrollFix(jb51.net).rar

復制代碼 代碼如下:

<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>
&nbsp;</div>
<div class="d">
<div class="demo" style="background: #82BF00;">$("#b").scrollFix(200,"bottom");
<div>滾動到距離上面200px時開始固定,指定"bottom"從下到上觸發(fā)</div>
</div>
&nbsp;</div>
<div class="d">
<div class="demo" style="background: #0C9CAE;">$("#c").scrollFix("top","top");
<div>滾動到距離上面0時開始固定,指定"top"從上到下觸發(fā)</div>
</div>
&nbsp;</div>
<div class="d">
<div class="demo" style="background: #478FCE;">$("#d").scrollFix("bottom","top");
<div>滾動到距離下面0時開始固定,指定"bottom"從下到上觸發(fā)</div>
</div>
</div>

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

<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表示上面的滾動高度大于等于目標高度
     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) { //恢復前只執(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)) { //結束
      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);

相關文章

  • jQuery.extend()的實現(xiàn)方式詳解及實例

    jQuery.extend()的實現(xiàn)方式詳解及實例

    extend()函數(shù)是jQuery的基礎函數(shù)之一,作用是擴展現(xiàn)有的對象
    2013-06-06
  • javascript中字符串拼接詳解

    javascript中字符串拼接詳解

    字符串拼接是所有程序設計語言都需要的操作。當拼接結果較長時,如何保證效率就成為一個很重要的問題。本文介紹的是Javascript中的字符串拼接,希望對你有幫助,一起來看。
    2014-09-09
  • 你必須了解的JavaScript中的屬性描述對象詳解(上)

    你必須了解的JavaScript中的屬性描述對象詳解(上)

    JavaScript提供了一個內部數(shù)據(jù)結構,用來描述對象的屬性,控制它的行為,比如該屬性是否可寫、可遍歷等等。這個內部數(shù)據(jù)結構稱為“屬性描述對象”。本文主要帶大家了解一下JavaScript中你必須了解的屬性描述對象,需要的可以參考一下
    2022-12-12
  • JavaScript裝箱及拆箱boxing及unBoxing用法解析

    JavaScript裝箱及拆箱boxing及unBoxing用法解析

    這篇文章主要介紹了JavaScript裝箱及拆箱boxing及unBoxing用法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • 一文總結JavaScript中常見的設計模式

    一文總結JavaScript中常見的設計模式

    在程序設計中有很多實用的設計模式,而其中大部分語言的實現(xiàn)都是基于“類”。在程序設計中有很多實用的設計模式,而其中大部分語言的實現(xiàn)都是基于“類”。,本文將總結了JavaScript中常見的十五種設計模式,感興趣的朋友可以參考下
    2023-05-05
  • JS簡單表單驗證功能完整示例

    JS簡單表單驗證功能完整示例

    這篇文章主要介紹了JS簡單表單驗證功能,結合完整實例形式分析了JavaScript表單驗證相關的字符串判斷、正則驗證、計算等相關操作技巧,需要的朋友可以參考下
    2020-01-01
  • JavaScript 接收鍵盤指令示例

    JavaScript 接收鍵盤指令示例

    JavaScript接收鍵盤指令示例,按下鍵盤上不同的鍵,程序會跳轉到不同的網頁,本例中按下A鍵程序為跳轉到腳本之家的首頁,實現(xiàn)按鍵跳轉的功能。
    2009-10-10
  • JavaScript實現(xiàn)鼠標滑過圖片變換效果的方法

    JavaScript實現(xiàn)鼠標滑過圖片變換效果的方法

    這篇文章主要介紹了JavaScript實現(xiàn)鼠標滑過圖片變換效果的方法,涉及javascript控制鼠標事件及樣式變換的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • Extjs4實現(xiàn)兩個GridPanel之間數(shù)據(jù)拖拽功能具體方法

    Extjs4實現(xiàn)兩個GridPanel之間數(shù)據(jù)拖拽功能具體方法

    這篇文章主要介紹了Extjs4實現(xiàn)兩個GridPanel之間數(shù)據(jù)拖拽功能具體方法,有需要的朋友可以參考一下
    2013-11-11
  • 原生JavaScript生成GUID的實現(xiàn)示例

    原生JavaScript生成GUID的實現(xiàn)示例

    GUID(全局統(tǒng)一標識符)是指在一臺機器上生成的數(shù)字,下面為大家介紹下原生JavaScript生成GUID的實現(xiàn),需要的朋友不要錯過
    2014-09-09

最新評論