getBoundingClientRect()来获取页面元素的位置”

获取的是一个对象;

延伸阅读;

https://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=403029188&idx=2&sn=1088e273b855b75815edb2e7977a0513&scene=0&key=710a5d99946419d988a823a3f76c4dabc336d68c1e192697aba3d5cdba0fce0f3dcb6b78a1934ce2f133ceeaab13180f&ascene=0&uin=MjY5MTA1NTUyNg%3D%3D&devicetype=iMac+MacBookAir7%2C2+OSX+OSX+10.10.5+build(14F1509)&version=11020012&pass_ticket=0TjAxgbmAwJ36hKBl6%2FKYh6xGq2b%2F%2BtEvMKL4mdzjFQTBk5DbaxNFQJwTuWK9VBv

 1 <!doctype html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6     <style>
 7         #w3124{ 8             width: 100px;
 9             height:100px;
10             background:#f45;
11             position: absolute;
12             left:100px;
13         }
14         #w3124.totes-at-the-end{15             top: 200px;
16         }
17         #w3124.animate-on-transforms{18             transition: all 1s;
19
20         }
21     </style>
22 </head>
23 <body>
24 <div id="w3124" class="">
25
26 </div>
27 <script>
28     console.log(document.getElementById("w3124").getBoundingClientRect());
29     var el = document.getElementById("w3124");
30     function tidyUpAnimations(){
31         console.log(222)
32     }
33 // 获取初始位置
34     var first = el.getBoundingClientRect();
35
36     // 为元素指定一个样式,让元素在最终位置上
37     el.classList.add('totes-at-the-end');
38
39     // 获取最终位置
40     var last = el.getBoundingClientRect();
41
42     // 如果有必要也可以对其他样式进行计算,但最好坚持只进行 transform 和 opacity 相关的计算
43     var invert = first.top - last.top;
44     console.log(invert);
45
46     // 反转
47     el.style.transform = 'translateY(' + invert + 'px)';
48
49     // 等到下一帧,也就是其他所有的样式都已经被应用
50     requestAnimationFrame(function() {
51
52         // 添加动画相关的设置
53         el.classList.add('animate-on-transforms');
54
55         // 开始动画
56         el.style.transform = '';
57     },5000);
58
59     // 结束时清理
60     el.addEventListener('transitionend', tidyUpAnimations);
61 </script>
62 </body>
63 </html>

转载于:https://www.cnblogs.com/suoking/p/5361831.html

getBoundingClientRect()来获取页面元素的位置”相关推荐

  1. 用getBoundingClientRect()来获取页面元素的位置

    以前绝大多数的使用下面的代码来获取页面元素的位置: [code="javascript"]var _x = 0, _y = 0; do{ _x += el.offsetLeft; ...

  2. 获取html元素的位置,如何获取页面元素的位置

    背景:最近在商品列表项目迭代中,需要在商品列表底部增加一个分销商品广告位,另外接收到一个产品曝光度的埋点需求,需要知道产品出现在用户视口后在进行数据统计! 基于虚拟 DOM 数据驱动的思想,最不提倡的 ...

  3. 用Javascript获取页面元素的位置

    制作网页的过程中,你有时候需要知道某个元素在网页上的确切位置. 下面的教程总结了Javascript在网页定位方面的相关知识. 一.网页的大小和浏览器窗口的大小 首先,要明确两个基本概念. 一张网页的 ...

  4. vue 获取元素在浏览器的位置_前端开发JS获取页面元素的位置

    1.网页的大小和浏览器窗口的大小 一张网页的全部面积,就是它的大小.通常情况下,网页的大小由内容和 document元素的clientHeight和clientWidth属性,就代表了网页的大小. f ...

  5. java 获取页面元素的位置_Selenium Java 页面元素定位2

    一.操作目的 1.1 自动化测试常用操作 1.定位网页上的元素,并存储到一个变量中: 2.对变量进行操作,比如点击或输入文字: 3.设定页面元素的操作值: 二.定位方法汇总 2.1 findEleme ...

  6. 使用html元素的getBoundingClientRect来获取dom元素的时时位置和大小

    使用: var section = $('.section'):这是jquery包装的dom元素,其他前端框架返回的可能也是一个包装元素, 我们需要获得的是里面的html的dom元素 然后:secti ...

  7. [html] 精确获取页面元素位置的方式有哪些?

    [html] 精确获取页面元素位置的方式有哪些? let btn = document.querySelector('#ele') let {top, left} = getComputedStyle ...

  8. 获取页面元素的滚动位置,兼容各浏览器

    /***获取页面元素的滚动位置@param {DOM} el Dom元素*return {Object} 元素滚动位置对象*/function getScroll (el) {var d = el,d ...

  9. js,jquery获取页面元素距离浏览器工作区顶端的距离

    先介绍几个属性:(暂时只测了IE和firefox,实际上我工作中用到的最多的是chrome)  网页被卷起来的高度/宽度(即浏览器滚动条滚动后隐藏的页面内容高度) (javascript)       ...

  10. 使用Selenium含蓄等待获取页面元素(附带实际业务需求情景)

    Hello,大家好,又到了小猿分享技术的时间了.这回带来的是使用Selenium去网站上获取部分信息并且执行部分操作以及"含蓄"等待元素加载完成以及截取图片和网页刷新机制的技术点. ...

最新文章

  1. 加强原始创新和基础研究的前提:三项破解之策
  2. domino大百科常见问题总汇1(转载)
  3. mysql驱动名更新
  4. P_C_Brules
  5. Python进阶_wxpy学习:机器人对象
  6. rust(63)-全局静态变量
  7. RMAN-06026报错解决方法
  8. 前端学习(1317):静态资源2
  9. MacBook 没有响应的应用程序 CUH
  10. Linux内存管理:内存寻址之分段机制与分页机制
  11. 计算机组成原理所需芯片数,计算机组成原理-微电子学院微电子试验教学中心.PPT...
  12. ASP.NET之JSONHelper操作
  13. BlogEngine学习一:操作符重载
  14. 查看docker镜像内部端口号_DOCKER 常用命令
  15. android通讯录字母特效,Flutter 城市/通讯录列表字母索引联动效果实现
  16. python 通达信选股_python通达信指标
  17. 【模仿学习】南京大学港中文联合总结: 29页中文详述模仿学习完整过程
  18. 数学 - 基本初等函数导数公式及求导法则
  19. 网易校招测试岗位2018
  20. 计算机系统盘怎么扩充,如何给电脑c盘扩容

热门文章

  1. 局域网电脑访问IIS
  2. Codeforces-GYM101873 G Water Testing 皮克定理
  3. python-常用模块-time、datetime模块
  4. WebForm控件多字段绑定
  5. 使用Win2D在UWP程序中2D绘图(二)
  6. sqlserver 登录失败——孤立用户
  7. 批量执行特定文件目录下SQL文件脚本
  8. 编译运行Cube_slam
  9. cookie与session的区别,你真的明白吗?
  10. intellij idea 程序包不可见问题