如何在Javascript中获取当前屏幕视图中左上角的偏移量?

时间:2016-08-03 12:39:28

标签: javascript dom

如何找到当前屏幕左上角的位置?例如。当我向下滚动html文档时,我需要用相对于文档开头的鼠标位置进行计算。我想计算像mouseOffsetY = upperleftCorner.offset.y + event.clientY;

这样的东西

2 个答案:

答案 0 :(得分:1)

document.getElementsByTagName("BODY")[0].scrollTop;

获取正文的scrollTop

所以它会来:

mouseOffsetY =document.getElementsByTagName("BODY")[0].scrollTop+event.clientY;

答案 1 :(得分:0)

这在Firefox中不起作用:

var marker = svg.append("line")
    .attr("x1",function(d) { if(d.marker!=Number.NaN)  return x(d.date); })
    .attr("y1", 0)     
    .attr("x2",function(d) { if(d.marker!=Number.NaN)  return x(d.date); })
    .attr("y2", height)
    .attr("class", "marker")

因为Firefox会检查html [0] .scrollTop而不是正文。

最后使用

更安全
console.log( $('body').get(0).scrollTop );
console.log( document.getElementsByTagName("body")[0].scrollTop );

在Firefox 48中运行良好。

在Firefox中

window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0 

将打印例如:

  console.log( window.pageYOffset );
  console.log( document.documentElement.scrollTop );
  console.log( $('html').get(0).scrollTop );
  console.log( $('body').get(0).scrollTop );
  console.log( document.getElementsByTagName("html")[0].scrollTop );