這是一套可以將元素釘住(置頂、置底都可以)的jQuery的套件,向左和向右則不影響
GitHub Star: 1,700
Javascripting Overall: -
瀏覽器: Chrome、Firefox和IE8+
RWD: 支援
License: MIT
CDN
<!-- jQuery v1.9.1 -->
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
<!-- ScrollToFixed v1.0.8 -->
<script tsrc="https://cdnjs.cloudflare.com/ajax/libs/ScrollToFixed/1.0.8/jquery-scrolltofixed-min.js"></script>
$ npm install scrolltofixed
<style>
#header, #container, #container2, #footer {
/* 設定樣式 */
background: #000;
color: #fff;
text-align: center;
}
</style>
<div style="height: 100px"><!-- 內容 --></div>
<div id="header">Header</div>
<div style="height: 100px"><!-- 內容 --></div>
<div id="container">Container 1</div>
<div style="height: 100px"><!-- 內容 --></div>
<div id="container2">Container 2</div>
<div style="height: 100px"><!-- 內容 --></div>
<div style="height: 10000px"><!-- 內容 --></div>
<div id="footer">Footer</div>
<script>
$( "#header" ).scrollToFixed();
$( "#container" ).scrollToFixed({
// 參數設定[註1]
marginTop: $( "#header" ).outerHeight(), // 與上面的間距
limit: $( "#container2" ).offset().top, // 超過此高度,取消釘住
zIndex: 999, // 圖層深度
spacerClass: "spacer", // 間隔的類別名稱
minWidth: false, // 當視窗寬度小於此時,關閉釘住功能
maxWidth: false, // 當視窗寬度大於此時,關閉釘住功能
dontCheckForPositionFixedSupport: false, // 關閉確認瀏覽器是否支援fixed功能
dontSetWidth: false, // 當物件是absolute或fixed時,不設定寬度
removeOffsets: false, // 當物件是absolute時,移除向左偏移
offsets: false, // 設定向左偏移
preAbsolute: function() { console.log( "preAbsolute" ) }, // 物件變成absolute後,會呼叫此函式
postAbsolute: function() { console.log( "postAbsolute" ) }, // 物件離開absolute後,會呼叫此函式
preFixed: function() { console.log( "preFixed" ) }, // 物件變成fixed後,會呼叫此函式
postFixed: function() { console.log( "postFixed" ) }, // 物件離開fixed後,會呼叫此函式
fixed: function() { console.log( "fixed" ) }, // 物件是fixed時,會呼叫此函式
unfixed: function() { console.log( "unfixed" ) }, // 物件不是fixed時,會呼叫此函式
});
$( "#container2" ).scrollToFixed({
marginTop: $( "#header" ).outerHeight() // 與上面的間距
});
$( "#footer" ).scrollToFixed({
bottom: 0 // 置頂與下面的間距
});
</script>
[註1]
參數 | 描述 |
---|
marginTop|與上面的間距
bottom|置頂與下面的間距
limit|超過此高度,取消釘住
zIndex|圖層深度
spacerClass|間隔的類別名稱
minWidth|當視窗寬度小於此時,關閉釘住功能
maxWidth|當視窗寬度大於此時,關閉釘住功能
dontCheckForPositionFixedSupport|關閉確認瀏覽器是否支援fixed功能
dontSetWidth|當物件是absolute或fixed時,不設定寬度
removeOffsets|當物件是absolute時,移除向左偏移
offsets|設定向左偏移
preAbsolute()|物件變成absolute後,會呼叫此函式
postAbsolute()|物件離開absolute後,會呼叫此函式
preFixed()|物件變成fixed後,會呼叫此函式
postFixed()|物件離開fixed後,會呼叫此函式
fixed()|物件是fixed時,會呼叫此函式
unfixed()|物件不是fixed時,會呼叫此函式