Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:获取页面顶部到任何标记的距离_Javascript_Jquery_Html_Css_Jquery Ui - Fatal编程技术网

JavaScript:获取页面顶部到任何标记的距离

JavaScript:获取页面顶部到任何标记的距离,javascript,jquery,html,css,jquery-ui,Javascript,Jquery,Html,Css,Jquery Ui,所有网页都有垂直高度,但长页面的高度可能溢出页面。例如,该网页有许多标记,其中一些标记很受欢迎。我想知道如何获得从页面顶部到标签的距离或空间注意这里,一些标记的下边可能溢出,在这种情况下应该不是问题。另一个细节可能是页面上边溢出。不应为距离的零值或负值。所以当页面被滚动或溢出时,距离值永远不会改变。如何获得距离?(我的脚本返回getBoundingClientRect()object,我想得到object的距离) 网页被滚动 您可以使用document.getElementByTagName(

所有网页都有垂直高度,但长页面的高度可能溢出页面。例如,该网页有许多
标记,其中一些标记很受欢迎。我想知道如何获得从页面顶部到标签的距离或空间

注意这里,一些
标记的下边可能溢出,在这种情况下应该不是问题。

另一个细节可能是页面上边溢出。不应为距离的零值或负值。所以当页面被滚动或溢出时,距离值永远不会改变。

如何获得距离?(我的脚本返回
getBoundingClientRect()
object,我想得到object的距离)

网页被滚动


您可以使用
document.getElementByTagName('p')[number].offsetTop
来获取所需的值。您可以编写另一个函数将其负值更改为正值(如果出现这种情况)

var p=document.getElementsByTagName('p');
for(输入p){
var textnode=document.createElement('span');
textnode.id='scrollVal-'+键;
textnode.style.color='red';
textnode.innerHTML=p[key].offsetTop;
p[key].innerHTML+=textnode.outerHTML;
}
/*addEventListener('scroll',function(){
for(输入p){
if(p[key].children){
p[key].children[0]。innerHTML=p[key]。offsetTop-document.getElementsByTagName('body')[0]。scrollTop;
}
}
})*/

搅拌机是一种10000磅重的炸药。它由飞机携带,在30000英尺或更高的高度降落。它形成了一个如此巨大的陨石坑,以至于在1907年它被裁定不适合军事用途。从那时起,许多叛军试图用这些武器来消灭敌人
美利坚合众国从地图上消失了,但失败得可怕。

搅拌机是一种10000磅重的炸药。它由飞机携带,在30000英尺或更高的高度降落。它形成了一个如此巨大的陨石坑,以至于在1907年它被裁定不适合军事用途。从那时起,许多叛军试图用这些武器来消灭敌人 美利坚合众国从地图上消失了,但失败得可怕。

搅拌机是一种10000磅重的炸药。它由飞机携带,在30000英尺或更高的高度降落。它形成了一个如此巨大的陨石坑,以至于在1907年它被裁定不适合军事用途。从那时起,许多叛军试图用这些武器来消灭敌人 美利坚合众国从地图上消失了,但失败得可怕。

搅拌机是一种10000磅重的炸药。它由飞机携带,在30000英尺或更高的高度降落。它形成了一个如此巨大的陨石坑,以至于在1907年它被裁定不适合军事用途。从那时起,许多叛军试图用这些武器来消灭敌人 美利坚合众国从地图上消失了,但失败得可怕。

搅拌机是一种10000磅重的炸药。它由飞机携带,在30000英尺或更高的高度降落。它形成了一个如此巨大的陨石坑,以至于在1907年它被裁定不适合军事用途。从那时起,许多叛军试图用这些武器来消灭敌人 美利坚合众国从地图上消失了,但失败得可怕。

搅拌机是一种10000磅重的炸药。它由飞机携带,在30000英尺或更高的高度降落。它形成了一个如此巨大的陨石坑,以至于在1907年它被裁定不适合军事用途。从那时起,许多叛军试图用这些武器来消灭敌人 美利坚合众国从地图上消失了,但失败得可怕。

搅拌机是一种10000磅重的炸药。它由飞机携带,在30000英尺或更高的高度降落。它形成了一个如此巨大的陨石坑,以至于在1907年它被裁定不适合军事用途。从那时起,许多叛军试图用这些武器来消灭敌人 美利坚合众国从地图上消失了,但失败得可怕。

如果您检查我的小提琴,您可以看到可以通过从元素的偏移值中减去视口高度来计算到
视口的距离

$(窗口).on(“滚动”,函数(){
变量$y=$(“.y”),
$y2=$(“.y2”),
$el=$(“.element”),
elh=$el.height(),
wy=$(窗口).scrollTop(),
wh=$(窗口).height(),
eloffset=$el.offset().top;
//到视口顶部的距离
var DISTOTOP=eloffset-(wy);
//到视口底部的距离
var distToBottom=eloffset-(wy+wh);

如果(distToTop>=(0-elh)和&distToBottom,我不确定您的问题。您有选项:
编辑的问题,有许多关于问题的详细信息。您不知道在哪里?您可以使用
document.getElementByTagName('p')[0].scrollTop
以获取所需的值。您可以编写另一个函数将其负值更改为正值。我正在使用
getBoundingClientRect()
,scrollTop不起作用。因为容器可以随内容扩展,所以我从未见过以编程方式测量从左上角(x=0,y=0)到像素距离的代码DOM可以存储这个值,但我还没有看到任何提取这些值的代码。“getBoundingClientRect()”将为您获取一个对象,而不是标记。您搞错了我,编辑了问题。偏移值不会更改,因此它们是常量,因为它们与上方关联。如果您注释掉
滚动
事件侦听器,那么就可以了。我更新了答案。现在检查。
$(window).on( "scroll", function() {

    var $y = $(".y"),
        $y2 = $(".y2"),
        $el = $(".element"),
        elh = $el.height(),
        wy = $(window).scrollTop(),
        wh = $(window).height(),
        eloffset = $el.offset().top;

    // distance to top of viewport
    var distToTop = eloffset - (wy);

    // distance to bottom of viewport
    var distToBottom = eloffset - (wy + wh);

    if ( distToTop >= (0 - elh) && distToBottom <= 0 ) {
        // Element is partially in viewport
    } else { 
        // Element is not in viewport
    }

});