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

如何获取div距离浏览器顶部的高度,第1张

可以使用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像素,所以d出的应该是100,如下图:

<script type="text/javascript">

$(文件)。就绪(函数(){

???$(“#标签TD”)。每个(函数(){

??????$(这)。点击(函数(){

?????????VAR选项卡=的documentgetElementById(“标签”)。子节点;

?????????(VAR I = 0; I <标签[0]。childNodeslength,我+ +){

???????????(VAR = 0; J <标签[0]。所有childNodes [I]。childNodeslength J + +){

????????????????(选项卡[0]。所有childNodes [I]。子节点[J]。的innerHTML == $(本)。使用html()){

??????????????????警报(“第”+(parseInt函数(I)+ parseInt函数( ))+“行”+(而parseInt(J)+ parseInt函数(1))+“栏的内容”+ $(本),HTML());

??????????????????;

????????????????}

??????????????}

????????????}

??????????});

????????});

</ SCRIPT>

1 通过unicreateSelectorQuery() 来实现,

注意:要获得的高度,是在页面上dom已经渲染完成之后才能获得

我使用的是页面生命周期  onReady()中调用的

                let _this = this;

                const query = unicreateSelectorQuery()

                 queryselect('#tab')boundingClientRect()

                   queryselectViewport()scrollOffset()

                    queryexec(function(res){

                        debugger

                       // res[0]top      // #tab节点的上边界坐标

                        // res[1]scrollTop // 显示区域的竖直滚动位置

                        _thisheight=resuwindowHeight-res[0]top +'px'

                        consolelog('高度',res[0]height);

                        consolelog('demo的元素的信息',res);

                    })

我是用于实现页面滚动后把列表的导航条吸附在顶部,在微信小程中使用有效,在app端使用这个方法不能获取到距离顶部的高度,只有demo元素的信息

getBoundingClientRect()最先是IE的私有属性,现在已经是一个W3C标准。所以你不用当心浏览器兼容问题,不过还是有区别的:IE只返回top,lef,right,bottom四个值,不够可以通过以下方法来获取width,height的值:

//兼容所有浏览器写法:

var ro = objectgetBoundingClientRect();

var Top = rotop;

var Bottom = robottom;

var Left = roleft;

var Right = roright;

var Width = rowidth||Right - Left;

var Height = roheight||Bottom - Top;

//有了这个方法,获取页面元素的位置就简单多了:

var X= thisgetBoundingClientRect()left+documentdocumentElementscrollLeft;

var Y =thisgetBoundingClientRect()top+documentdocumentElementscrollTop;

DOM结构:

<View style={stylescheckContainer}  ref='checkContainer' onLayout={({nativeEvent:e})=>thislayout(e)}> 

</View>

对应js方法:

layout=(e)=>{

      consolewarn(elayouty)  ;

      var UIManager = require('UIManager');

      consolewarn(etarget);

      UIManagermeasure(etarget, (x, y, width, height, left, top) => {

     consolewarn('x:'+x)

     consolewarn('y:'+y)

     consolewarn('width:'+width)

     consolewarn('height:'+height)

     consolewarn('left:'+left)

     consolewarn('top:'+top)

})

}

注意:View组件的onLayout(可以得到宽高和相对位置)配合UIManagermeasure(可以得到宽高和绝对位置)一起使用

附加知识点:

得到某一dom元素的节点值:

import {findNodeHandle} from 'react-native';

var nodeData = findNodeHandle(thisrefsname);

nodeData即为节点值

以上就是关于如何获取div距离浏览器顶部的高度全部的内容,包括:如何获取div距离浏览器顶部的高度、asp.net如何获取浏览器原点相对于屏幕的位置、uniapp获取元素到顶部的距离等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9797338.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存