关于js获取元素在屏幕中的位置的方法
针对我们获取元素在页面中的位置的问题,我们还是用老师一峰老师的方法来解决吧
下面上HTML代码
<div class="left_footer">
<p class="p1" data-num="1" ref="data" @mouseenter="mOver($event)" @mouseleave="mOut($event)">上</p>
<p data-num="2" ref="data" @mouseenter="mOver($event)" @mouseleave="mOut($event)">右</p>
<p data-num="3" ref="data" @mouseenter="mOver($event)" @mouseleave="mOut($event)">左</p>
</div>
我拿上面的代码来简单举下例css代码我就不上了,在这里不影响
在上面我需要获取到对应的DOM元素就可以进行相关的函数操作了
这里的话比如说获取第一个p元素
var element = document.querySelector(".left_footer .p1");
接下来直接将element传入函数即可
下面我们直接上函数代码:
其中的element的意思是代表的是我们需要操作的这个节点,我们只需要把对应的节点传入即可
函数的返回值就是我们所得到的距离值
function getElementTop(element) {
var actualTop = element.offsetTop; //这是获取元素距父元素顶部的距离
var current = element.offsetParent; //这是获取父元素
while (current !== null) { //当它上面有元素时就继续执行
actualTop += current.offsetTop; //这是获取父元素距它的父元素顶部的距离累加起来
current = current.offsetParent; //继续找父元素
}
return actualTop;
},
以上就是如何获取顶部的值,那么获取距左边的距离道理也是一样的,这里我就不在多说了哈
关于js获取元素在屏幕中的位置的方法的更多相关文章
- js获取元素到屏幕左上角的距离
开发过程中经常会遇到 获取元素到屏幕左上角的距离, 当我们使用jQuery开发时,我们可以使用 $.offset()来获取准确的距离. 如果我们的项目中并没有引入jQuer的话,跟希望通过原生方法实现 ...
- Android 获取View在屏幕中的位置【转】
Android 获取View在屏幕中的位置 https://blog.csdn.net/lonely_fireworks/article/details/7849643
- js获取div相对屏幕的坐标位置
1:div相对屏幕的坐标位置 function getDivPosition(div){ var x = div.getBoundingClientRect().left; var y = div.g ...
- JS获取元素尺寸大小、鼠标位置
//e.clientX|Y:表示鼠标相对浏览器可视窗口的当前坐标 //e.offsetX|Y:表示鼠标相对于事件源对象的坐标 //e.pageX|Y:表示鼠标相对于网页的坐标 /* element.o ...
- android 获取view在屏幕中的位置
使用view中的getLocationOnScreen方法,即可: final int[] locations = new int[2]; Button btn = (Button) findView ...
- JS获取元素属性、样式getComputedStyle()和currentStyle方法兼容性问题
1. getComputedStyle() 方法获取到的是经过计算机/浏览器计算后的样式 getComputedStyle($("#div")).width; 兼容性:IE6 7 ...
- JS 获取浏览器和屏幕宽高等信息代码
JS 获取浏览器和屏幕宽高等信息. 网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:doc ...
- JS获取元素CSS值的各种方法分析
先来看一个实例:如何获取一个没有设置大小的字体? <!DOCTYPE html> <html lang="en"> <head> <met ...
- 【全面总结】js获取元素位置大小
[js获取元素位置+元素大小]全面总结 目录 1.关于offset offsetParent(只读) offsetTop(只读) offsetLeft(只读) offsetHeight(只读) off ...
随机推荐
- [Ubuntu]解决"系统的网络服务与此版本的网络管理器不兼容"提示
先贴方法: sudo -s ' 获取root权限 apt-get install network-manager ' 重装网络管理器 如果系统提示有升级包可用则安装即可. 开机后,右上角没有网络图标. ...
- SpringBoot系列专栏
学会使用SpringBoot能够极大地提升Spring应用的开发效率,可以说是目前开发应用Java必需掌握的工具之一,而且SpringBoot也是微服务应用的基础,只有学会了SpringBoot,你才 ...
- SQLException:The server time zone
报错信息如下: java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represen ...
- 终于知道为什么linux文件系统权限是124了
哈哈,恍然大悟,出自pythonweb开发实战这一本书135页,有兴趣的朋友可以去了解下!
- SonarQube代码管理
一 搭建过程不详细说 二 配合jenkins使用,jenkins搭建过程这里不详细说 三 jenkins项目配置,需要安装sonarqube-jenkins插件 sonar.projectKey=a6 ...
- Oracle批量创建同义词
一.介绍 Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系.它可以节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;它扩展了数据库的使用 ...
- LeetCode 381. Insert Delete GetRandom O(1) - Duplicates allowed O(1) 时间插入、删除和获取随机元素 - 允许重复(C++/Java)
题目: Design a data structure that supports all following operations in averageO(1) time. Note: Duplic ...
- centos7安装lnmp
一.配置CentOS 第三方yum源(CentOS默认的标准源里没有nginx软件包) [root@localhost ~]# yum install wget #安装下载工具wget [root@l ...
- 【C/C++】概念: VC虚函数布局引发的问题
在网上看到一个非常热的帖子,里面是这样的一个问题: 在打印的时候发现pFun的地址和 &(Base::f)的地址竟然不一样太奇怪了?经过一番深入研究,终于把这个问题弄明白了.下面就来一步步进行 ...
- PyTorch可视化——tensorboard、visdom
一.pytorch与tensorboard结合使用 Tensorboard Tensorboard一般都是作为tf的可视化工具,与tf深度集成,它能够展现tf的网络计算图,绘制图像生成的定量指标图以及 ...