【问题标题】:How to get window position from top in pixels如何从顶部获取窗口位置(以像素为单位)
【发布时间】:2013-11-14 12:43:41
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 为什么在点击处理程序之外设置pos?您想在点击时而不是之前获得位置,不是吗?如果你认为pos 会实时更新,那你就错了:-)
  • 你必须将它写在滚动函数中。由于 var pos 在开始时被初始化,它总是为零
  • @devnull69 谢谢!!!我把它放在那个点击的东西里面,它起作用了:)
  • @user2952227 看到这个jsfiddle.net/HQ3ce

标签: javascript jquery css


【解决方案1】:

这是我在一个项目中实现的跨浏览器解决方案。忘记我在哪里找到它,否则我会相信!可能在另一个 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;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    相关资源
    最近更新 更多