jQuery scrollLeft无法处理隐藏元素

时间:2016-04-01 12:37:10

标签: javascript jquery html css

我有一个大容器DIV,其中有许多其他元素并且有滚动条。当DIV可见时我获得了scrollLeft的数量,但是当我隐藏元素时scrollLeft()返回0。

如果我在scrollLeft(100)中设置值,我最终会得到0。

Follow the Jsfiddle

2 个答案:

答案 0 :(得分:1)

jQuery.hide()display: none;设置为它应用的元素。 display: none;的元素的维度为0px0px,并且由呈现引擎将其视为当前不属于DOM的元素。因此,您将无法检索当前滚动位置,除非您暂时显示该元素。

$("#parent").show();
console.log($("#parent").scrollLeft());
$("#parent").hide();

Here's the updated fiddle.

答案 1 :(得分:1)

你怎么隐藏你的div? 尝试使用

visibility:hidden 

而不是

display :none

因为Visibility处理DIV的可见性但保留空间,DIV占用的显示句柄空间。