3

身高是(例如)200%。有一个div。当您单击它时,浏览器应该会提醒您滚动了多少(如标题所说,以像素为单位从文档顶部开始的位置)。我尝试了两种变体,但它们都不起作用:(

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

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

如果我使用scrollTop,它会提示“...是 0 像素”,即使我在文档的底部。

如果我使用offset,它会提醒“......是未定义的像素”。我应该怎么办?

4

1 回答 1

0

这是我在项目中实现的跨浏览器解决方案。忘记我在哪里找到它,否则我会相信!可能在另一个 SO 问题上。

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;
    }
}
于 2013-11-25T21:23:05.253 回答