最新消息:欢迎光临!

jq获取隐藏元素高度引发的溢出

js/jquery findever 2297浏览 0评论

“如果容器是隐藏的,jquery会先复制一份这个元素,然后将其display设为blockposition设成absolutevisibility设成hidden,然后把这个复制的元素放到原元素相同的位置,即父元素是同一个,这样能确保样式表能够正常应用到这个复制的元素,设置positionvisibility是为了不修改原来的文档流导致页面重新渲染闪烁错乱,然后通过js获取复制元素的宽高,最后再将这个元素移除。” —摘自 http://blog.19lou.com/19003459/viewspace-9632708

这导致的一个问题就是,在jq获取元素的高度的时候,元素的高度会隐式地在文档流中表现,假如外层容器的高度不够,就会产生溢出。

解决方案:

1.在获取元素高度之前,把容器设为溢出隐藏,即overflow:hidden

2.把元素复制到body中,然后将其display设为block,position设成absolute,visibility设成hidden,获取高度(未验证,适用性低)

转载请注明:Findever » jq获取隐藏元素高度引发的溢出

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址