2013-11-14 4 views
3

Высота тела (например) 200%. Существует div. Когда вы нажимаете на нее, браузер должен предупредить, сколько вы прокрутили (например, название говорит, позиция сверху документа в пикселях). Я пробовал два варианта, но ни один из них не работает :(Как получить положение окна сверху в пикселях

var doc = $(document) 
var pos = doc.scrollTop(); 

$(".block").click(function() { 
alert('Distance from top is ' + pos + ' pixels') 
}) 

Если я использую scrollTop, он предупреждает «... это 0 пикселей», даже если я в нижней части документа.

Если я использую offset, он предупреждает «... неопределенны пиксели». Что я должен делать?

+1

http://api.jquery.com/position/ – mplungjan

+0

Почему вы устанавливаете 'pos' вне обработчика кликов? Вы хотите получить позицию во время клика, а не раньше, не так ли? Если вы считаете, что 'pos' будет обновляться вживую, вы ошибаетесь :-) – devnull69

+1

вам придется писать его внутри функции прокрутки. Поскольку var pos инициализируется в начале, он всегда будет равен нулю – wilsonrufus

ответ

0

Вот броузеры решения я реализовал в проекте. Забудь, где я нашел его, или я бы кредит Вероятно, по другому вопросу С.

function getScrollTop(){ 
    if(typeof pageYOffset!= 'undefined'){ 
     //most browsers except IE before #9 
     return pageYOffset; 
    } 
    else{ 
     var B= document.body; //IE 'quirks' 
     var D= document.documentElement; //IE with doctype 
     D= (D.clientHeight)? D: B; 
     return D.scrollTop; 
    } 
} 
Смежные вопросы