博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
当 position:sticky 遇到 bootstrap 浮动布局时候的踩坑记录
阅读量:5983 次
发布时间:2019-06-20

本文共 1176 字,大约阅读时间需要 3 分钟。

当第一次接触到 position:sticky 这个属性,我就意识到之前的不少 js 场景可以用这个 css 属性去改写。譬如 右侧的不少广告,滚动上去后需要 fixed,完全就是 sticky 的应用啊。

今天要说的是 右侧的目录栏,当页面下滑的时候,它也会固定到页面顶部,之前是用 js 去监听 scroll 事件,然后根据位置进行判断,toggle fixed 的方案,出于一些原因,决定对它用 sticky 去重写。

几下就写完了,去掉滚动事件监听,然后将菜单元素 .post-nav 加上 position:sticky; top:0 样式,但是,不起效!

wtf! 百思不得其解,我开始搜索原因。在 so 搜到了 ,说到可能是元素的父级元素有对 overflow 属性进行处理,比如加了什么 overflow:hidden 啥的,但是看了下,并没有这种情况。

然后我猜想会不会是 bootstrap 布局的问题(事实上确实有关系),写下 demo:

    
content
ad
others

但是没问题,突然想到网站用的 bootstrap 版本是 3.x,然后改成 3.3.7 的版本,这时候问题就出来了。

这时候问题就比较好定位了,4.x 用的是 flex 布局,而 3.x 还是 float 浮动布局,问题应该是出在这里了。

最终代码(参考 ):

    
content
ad
others

对应到开始的问题上,因为 menu 是属于 .col-md-3 元素的,所以右边的 .col-md-3 需要和左边的 .col-md-9 保持高度一致即可,加上这行代码:

$('.side').height($('.main').height())

因为左边的内容区域有图片的延迟加载,所以这行代码需要持续执行:

$(window).scroll(function() {  $('.side').height($('.main').height()) // other code  // ...})

转载地址:http://purox.baihongyu.com/

你可能感兴趣的文章
基于CentOS 7的owncloud部署
查看>>
基于Cadence Virtuoso 设计平台的单片射频收发集成电路的设计过程
查看>>
桌面支持--电脑桌面图标全选怎么解除.png
查看>>
TCP/IP 协议
查看>>
删除cm-5.13.2目录报错
查看>>
公钥,私钥关系
查看>>
C++语言中的预编译指令记录
查看>>
JAVA 线程数量如何设置
查看>>
分布式缓存架构设计
查看>>
【翻译】CodeMix使用教程(五):构建管道和验证
查看>>
AWS 使用AWS CLI 创建ECS集群
查看>>
nodejs 黑名单中间件设计
查看>>
三, 跨语言微服务框架 - Istio官方示例(自动注入.请求路由.流量控制.故障注入)...
查看>>
scala 柯里化练习
查看>>
记录一次线上GC问题和原因分析,FullGC到一定次数就停止FullGC
查看>>
何为HipHop?
查看>>
OSChina 周一乱弹 —— 怎么搭讪学医的女孩,说你有病!
查看>>
eclipse 和 myeclipse 的区别
查看>>
goroutine 相关知识5
查看>>
Hive Outline - Part I (UDF, JOIN, SELECT, Map-Red)
查看>>