
可以使用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获取元素到顶部的距离等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)