Javascript 如何获取元素相对于窗口的当前位置

Javascript 如何获取元素相对于窗口的当前位置,javascript,jquery,Javascript,Jquery,是否有任何方法可以获取元素相对于窗口的当前位置, 非文件 偏移量获取元素相对于文档的当前位置参见此小提琴。 我想你会得到答案的。 这是你的电话号码 [1]: http://jsfiddle.net/mk4q332q/ 要计算元素相对于视口顶边的位置,可以使用以下组合: getClientBoundingRect()(用于确定元素在文档中的位置);及 window.scrollY(用于确定窗口的垂直滚动位置) 然后,只需从第一个值中减去第二个值: var-button=document

是否有任何方法可以获取元素相对于窗口的当前位置, 非文件

偏移量获取元素相对于文档的当前位置参见此小提琴。 我想你会得到答案的。 这是你的电话号码

  [1]: http://jsfiddle.net/mk4q332q/

要计算元素相对于视口顶边的位置,可以使用以下组合:

  • getClientBoundingRect()
    (用于确定元素在文档中的位置);及
  • window.scrollY
    (用于确定窗口的垂直滚动位置)
然后,只需从第一个值中减去第二个值:

var-button=document.getElementsByTagName('button')[0];
var div=document.getElementsByTagName('div')[0];
var divRect=div.getBoundingClientRect();
函数alertCurrentPosition(){
var windowVerticalScroll=window.scrollY;
alert('红方块顶部为'+(divRect.top-windowVerticalScroll)+'视口顶部下方的像素');
}
按钮。addEventListener('click',alertCurrentPosition,false)
正文{
高度:1200px;
}
钮扣{
位置:固定;
顶部:6px;
左:6px;
}
div{
位置:绝对位置;
顶部:300px;
左:50%;
宽度:100px;
高度:100px;
背景色:rgb(255,0,0);
}
滚动视口并单击我

这段代码对我很有效

var offset = $("selector").offset();
var posY = offset.top - $(window).scrollTop();
var posX = offset.left - $(window).scrollLeft(); 

我从这里得到了答案

您可以使用元素。getBoundingClientRect()解释了如何使用
offset()
scrollTop()
scrollLeft()
@dading84来实现这一点,非常感谢您的努力。它可能是