官方說(shuō)明如下:
Dropped the Affix jQuery plugin. We recommend using a position: sticky
polyfill instead.
See the HTML5 Please entry for details and specific polyfill recommendations.
If you were using Affix to apply additional, non-position
styles, the polyfills might not support your use case.
One option for such uses is the third-party ScrollPos-Styler library.
也就是說(shuō)寡痰,按照官爺說(shuō)法,得用position: sticky;
的polyfill代替棋凳。注意拦坠,不是直接用position: sticky;
,因?yàn)榫瓦BIE11都不支持剩岳,Chrome也不支持而且不打算支持position: sticky;
贞滨!坑爹么?
官爺給的鏈接里面拍棕,推薦了兩個(gè)插件:
Use Fixed-sticky for simple top or bottom aligned stickies.
Use Stickyfill for a wider range of use cases with top aligned sticky positioned blocks and table cells.
然后官爺又說(shuō)晓铆,如果你足夠倒霉的話,你可以用 ScrollPos-Styler這個(gè)庫(kù)绰播。
好在我還有一些關(guān)于sticky的jQuery插件可以試試:
http://www.reibang.com/p/97cb265ebf52
測(cè)試:Fixed-sticky
- 導(dǎo)航的父元素必須設(shè)高度骄噪,因?yàn)閷?dǎo)航只能在父元素內(nèi)移動(dòng)。而且這個(gè)高度必須跟旁邊的內(nèi)容列的高度一致蠢箩。實(shí)現(xiàn)高度一致的辦法链蕊,網(wǎng)上沒(méi)有很完美的解決辦法事甜,通常用js,如果內(nèi)容列有圖片滔韵,就需要等所有圖片加載完成之后再進(jìn)行js計(jì)算逻谦,讓兩列等高。然后還有一個(gè)問(wèn)題陪蜻,就是在特小屏下邦马,側(cè)邊欄跟正文區(qū)是上下排列的,不再需要等高囱皿,讓側(cè)邊欄保持自己的自動(dòng)高度即可勇婴,所以來(lái)一段CSS:
@media (max-width: 543px) {
.bd-sidebar {
height: auto !important;
}
}
- 如果直接給側(cè)邊欄導(dǎo)航本身設(shè)了
top: 50px
,那么久不用必須給導(dǎo)航加.fixedsticky
嘱腥。關(guān)于50px
這個(gè)數(shù)值,來(lái)自于
- 因?yàn)閷?dǎo)航在
position:fixed;
狀態(tài)時(shí)脫離了文檔流拘悦,所以它的寬度會(huì)有問(wèn)題齿兔,需要用js給導(dǎo)航設(shè)置width
,設(shè)成與父元素寬度一致础米。 - 其他按github的說(shuō)明文檔搞就行了分苇。
其他插件先不測(cè)試了。