2013-08-09 2 views
0

У меня есть div в этом jsfiddle - http://jsfiddle.net/stevea/vLQrK/2/ - с содержимым, которое переполняется, и у меня переполнение: набор прокрутки. Я бы хотел, чтобы узнать, какая часть содержимого находится вне поля div #, когда я нажимаю кнопку «Считать смещение». Когда полоса прокрутки находится наверху, я ожидаю, что прочитаю 0, и когда полоса прокрутки будет внизу, я ожидаю, что прочитаю около 80. Очевидно, что у меня в обработчике кнопок сейчас некорректно:Считывание прокрутки прокрутки

$('button#readOffset').click(function() { 
     console.log("offset = " + $(window).scrollTop()); 
    }); 

Во-вторых, я хотел бы гарантировать, что каждый раз, когда страница загружается, полоса прокрутки начинается сверху. В приложении, откуда пришел этот пример, позиция полосы прокрутки запоминается с последнего значения, когда последний раз, когда страница была в браузере, хотя в этом jsfiddle она всегда начинается сверху, как я хочу. Я не знаю, какая разница между jsfiddle здесь и полным приложением, но если есть какой-то код, который гарантирует, что свиток всегда инициализируется в верхней части, я бы хотел его использовать.

Спасибо за любую помощь.

+1

Вычесть высоту DIV его текущей свитка смещение ... – jahroy

+0

Ваш скрипку не помнит последнюю позицию прокрутки, потому что вы не добавили код, который может сохранять и извлекать такую ​​информацию. Ваше приложение, по-видимому, имеет встроенную логику. Вероятно, для этого требуется либо язык программирования на стороне сервера, либо файл cookie. – jahroy

+0

@jahroy: Некоторые браузеры (я думаю, что все, кроме я использую только Firefox на регулярной основе, чтобы комментировать) сделают это сами по себе, по крайней мере, до общей позиции прокрутки окна ... не уверены в DIV's – prodigitalson

ответ

1

У вас есть ошибка. Вы читаете scrollTop() из окна, вы должны выбрать элемент, который прокручивает $ ('# box') в этом случае.

$('#readOffset').click(function() { 
    console.log("offset = " + $("#box").scrollTop()); 
}); 
+0

Да, я знал, что это неправильно, о чем я упоминал в своем вопросе. Я еще не знал, что было правильно. То, что вы показали, я считаю правильным. Ссылка jQuery для .scrollTop() говорит, что она дает: «количество пикселей, которые скрыты от вида над прокручиваемой областью». И это то, чего я хочу. Нам не нужно вычитать высоту окна и т. Д. – Steve

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