Bootstrap 4取消了affix,怎么办?

官方说明如下:

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.

也就是说,按照官爷说法,得用position: sticky;的polyfill代替。注意,不是直接用position: sticky;,因为就连IE11都不支持,Chrome也不支持而且不打算支持position: sticky;!坑爹么?

官爷给的链接里面,推荐了两个插件:

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.

然后官爷又说,如果你足够倒霉的话,你可以用 ScrollPos-Styler这个库。

好在我还有一些关于sticky的jQuery插件可以试试:
http://www.jianshu.com/p/97cb265ebf52

测试:Fixed-sticky

  • 导航的父元素必须设高度,因为导航只能在父元素内移动。而且这个高度必须跟旁边的内容列的高度一致。实现高度一致的办法,网上没有很完美的解决办法,通常用js,如果内容列有图片,就需要等所有图片加载完成之后再进行js计算,让两列等高。然后还有一个问题,就是在特小屏下,侧边栏跟正文区是上下排列的,不再需要等高,让侧边栏保持自己的自动高度即可,所以来一段CSS:
@media (max-width: 543px) {
  .bd-sidebar {
    height: auto !important;
  }
}
  • 如果直接给侧边栏导航本身设了top: 50px,那么久不用必须给导航加.fixedsticky。关于50px这个数值,来自于
    这个截图
  • 因为导航在position:fixed;状态时脱离了文档流,所以它的宽度会有问题,需要用js给导航设置width,设成与父元素宽度一致。
  • 其他按github的说明文档搞就行了。

其他插件先不测试了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 你听说过苏烟吗?许嵩的?听过啊。不是素颜,是苏烟。 作为一个烟民,我是从不劝别人戒烟的。从开始抽烟到现在,断断续续...
    樱桃炒肉阅读 1,001评论 0 2
  • 一组成都锦里的梅花和贴梗海棠,猜猜是什么镜头拍的 每一朵每一处,都是绿茵重来 此处不是江湖何处是 一别离,年复年 ...
    彣清阅读 661评论 0 3
  • 孩子们把时间都浪费在一个过时的教育体系中,学一些他们永远用不着的东西,并为一个根本不存在的世界准备着。 这是美国人...
    July15阅读 267评论 0 0