2016-04-01 3 views
0

У меня есть большой контейнер DIV, который имеет много других элементов в нем и имеет полосу прокрутки. Я получаю количество scrollLeft когда DIV виден, но когда я скрыть элемент scrollLeft() возвращает 0.jQuery scrollLeft не работает с скрытым элементом

Таким же образом, если установить значение в scrollLeft(100) я в конечном итоге получить 0.

Follow the Jsfiddle

ответ

1

jQuery.hide() устанавливает display: none; к элементу, к которому он применяется. Элементы, которые являются display: none;, имеют размеры 0px по 0px и обрабатываются движком рендеринга как элементы, которые в настоящее время не являются частью DOM. Таким образом, вы не сможете получить текущую позицию прокрутки, если вы временно не покажете элемент.

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

Here's the updated fiddle.

1

Как скрыть свой DIV? Попробуйте использовать

visibility:hidden 

вместо

display :none 

, потому что видимость обрабатывает видимость DIV, но сохранить пространство, и дисплей обрабатывает пространство делает DIV занимает.

Смежные вопросы