求教js如何获取元素到浏览器顶部的距离

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求教js如何获取元素到浏览器顶部的距离相关的知识,希望对你有一定的参考价值。

网页结构如下:
<body style="overflow:auto">
<div>
<ul>
<li></li>
<li></li>
... ...
</ul>
</div>
</body>

当我滑动滚动条时,我想知道某一个li距离浏览器顶部的距离,我用$("li").scrollTop()一直都是0,无论我滚动条滚到哪。
还有一个问题,我怎么设置滚动条的位置,网上百了一下说是用$("div").scrollTop(300);但是我这边滚动条是在body上,我用document.documentElement.scrollTop(300),或者document.body.scrollTop(300)都不行,求教各位了

1、打开sublime text3,也可以用其他编辑器,这里新建一个html文档作为示范。

2、创建一下HTML文档的基本架构。

3、设置多个标签,这样等会可以有更多选择。

4、创建一个JS文档,并且与HTML文档关联。

5、输入var test = document.getElementById( "pp").offsetTop;document.write( test )。

6、offsetLeft就能知道元素到顶部的距离。

参考技术A

看看吧,发代码就屏蔽了


下一个这样写,设置滚动位置:



window.onscroll= function()bb();

function bb()

var obj = document.getElementById("aaa");

var topa = obj.offsetTop

var top=document.documentElement.scrollTop;   

document.getElementById("aaa").innerHTML = topa-top; 

window.onload=function()

document.documentElement.scrollTop = "200px";


希望能帮到你!

本回答被提问者和网友采纳
参考技术B <!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
        body
            margin: 0;
            padding: 0;
        
        .mdiv
            width: 100px;
            height: 100px;
            background-color: #097df3;
        
    </style>
</head>

<body>
<div style="height: 1000px"></div>
<div class="mdiv"></div>
<script src="jquery-2.1.1.min.js"></script>
<script>
    //原生
    //获取div距离顶部的距离
    var mTop = document.getElementsByClassName('mdiv')[0].offsetTop;
    //减去滚动条的高度
    var sTop = document.body.scrollTop;
    var result = mTop - sTop;
    console.log(result);
    //Jquery
    mTop = $('.mdiv')[0].offsetTop;
    sTop = $(window).scrollTop();
    result = mTop - sTop;
    console.log(result);
</script>
</body>
</html>

参考技术C 某一个li给他一个class,如test获取他到浏览器顶部的距离直接用$('.test').css('top');
第二个问题设置浏览器的滚动条,首先必须浏览器存在滚动条,设置是这么写的:
document.documentElement.scrollTop = 0;为了兼容性html声明部分最好换成这个
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
参考技术D function scrollToTop()
window.scrollTo(0,0);

如何获取div距离浏览器顶部的高度

可以使用offset()方法来获取元素距离浏览器的边距,offset()
方法返回或设置匹配元素相对于文档的偏移(位置)。
工具原料:编辑器、浏览器
1、首先设置一个div然后使用offset()方法来获取其距离浏览器顶部的高度,简单的代码示例如下:
<body style="margin: 0;padding: 0;">
<div style="width: 200px;height: 200px;border: 1px solid red;margin-top:100px;"></div>
<script>
alert($('div').offset().top);
</script>
</body>
2、因为div距离顶部的距离是100像素,所以弹出的应该是100,如下图:

参考技术A 举例:<div id="box">box</div>
<script>
var oBox = document.getElementById("box");
alert( oBox.offsetTop );
</script>
前提是这个DIV要相对于body定位,才能获取到值本回答被提问者采纳

以上是关于求教js如何获取元素到浏览器顶部的距离的主要内容,如果未能解决你的问题,请参考以下文章

如何获取元素距离页面顶部的高度?

js获取元素距离浏览器顶端的距离

js,jquery 获取滚动条高度和位置, 元素距顶部距离

JQ的offset().top与JS的getBoundingClientRect区别详解,JS获取元素距离视窗顶部可变距离

​父元素以relative方式定位的子元素怎么用js获取子元素到网页顶部的距离

js中如何获取某个元素到浏览器最左和最右的距离?