当前位置: 首页 > wzjs >正文

免费网站建设模板下载自动连点器

免费网站建设模板下载,自动连点器,成立公司注册资金可以随便写吗,wordpress去掉底部版权JavaScript中判断元素是否在可视区域内 1.有什么应用2.方法1-----使用offsetTop、scrollTop3.方法2-----getBoundingClientRect4.方法3-----Intersection Observer 1.有什么应用 懒加载列表的无限滚动计算广告元素的曝光情况 2.方法1-----使用offsetTop、scrollTop offsetTo…

JavaScript中判断元素是否在可视区域内

  • 1.有什么应用
  • 2.方法1-----使用offsetTop、scrollTop
  • 3.方法2-----getBoundingClientRect
  • 4.方法3-----Intersection Observer

1.有什么应用

  • 懒加载
  • 列表的无限滚动
  • 计算广告元素的曝光情况

2.方法1-----使用offsetTop、scrollTop

offsetTop、scrollTop属于三大家族的内容,详情见https://blog.csdn.net/fageaaa/article/details/145728760。

思路:元素的offsetTop-页面的scrollTop<=页面的高度

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>Title</title><style>.area1,.area3 {width: 100%;height: 1200px;background-color: aqua;}.box {width: 100%;height: 100px;background-color: red;}</style></head><body><div class="area1"></div><div class="area2 box"></div><div class="area3"></div><script>function isInViewPortOfOne(el) {// 下面是浏览器视口的高度的兼容性写法const viewPortHeight =window.innerHeight ||document.documentElement.clientHeight ||document.body.clientHeight;const offsetTop = el.offsetTop;const scrollTop = document.documentElement.scrollTop;const top = offsetTop - scrollTop;//注意这里只是个简略方式,没考虑el的边框return top <= viewPortHeight && top + el.clientHeight >= 0;}let box= document.querySelector(".box");window.addEventListener("scroll", function () {if (isInViewPortOfOne(box)) {console.log("box元素在可视区域内");} else {console.log("box元素不在可视区域内");}});</script></body>
</html>

3.方法2-----getBoundingClientRect

getBoundingClientRect函数返回值是一个 DOMRect对象,拥有left, top, right, bottom, x, y, width, 和 height属性。详情见https://blog.csdn.net/fageaaa/article/details/145728760。
思路:top大于等于0;left大于等于0;right小于等于viewWidthbottom小于等于viewHeight

function isInViewPort(element) {const viewWidth = window.innerWidth || document.documentElement.clientWidth;const viewHeight = window.innerHeight || document.documentElement.clientHeight;const {top,right,bottom,left,} = element.getBoundingClientRect();return (top >= 0 &&left >= 0 &&right <= viewWidth &&bottom <= viewHeight);
}

4.方法3-----Intersection Observer

前面两种方式需要一直监听,就算用了防抖节流也要一直监听(只不过性能会好一点)。所以Intersection Observer这个方法性能上会更好!!!

浏览器提供了一种异步观察目标元素与祖先元素(或顶级文档的视口)交叉状态变化的方法。IntersectionObserver详细用法见https://blog.csdn.net/fageaaa/article/details/145741778

<head><meta charset="UTF-8" /><title>Title</title><style>.area1,.area3 {width: 100%;height: 1200px;background-color: aqua;}.box {width: 100%;height: 100px;background-color: red;}</style></head><body><div class="area1"></div><div class="area2 box"></div><div class="area3"></div><script>let box = document.querySelector(".box");//它提供了一种异步观察目标元素与祖先元素(或顶级文档的视口)交叉状态变化的方法。// 这个API的出现主要是为了高效解决在网页开发中需要频繁判断元素是否进入“视口”(viewport)的问题。// 相比于传统的依赖scroll事件和getBoundingClientRect方法,Intersection Observer API在性能上有显著的优势let intersectionObserver = new IntersectionObserver(function (el) {if (el[0].intersectionRatio <= 0) {console.log("元素彻底离开可视区");} else {console.log("元素进入可视区");//进入可视区之后,资源已经下载好,就不需要再进行监视了intersectionObserver.unobserve(box);}});intersectionObserver.observe(box);</script></body>
http://www.dtcms.com/wzjs/839172.html

相关文章:

  • 怎么做网站一个平台可以做ppt的网站
  • 网站调研方法有哪些内容网站开发合同审核要点
  • 桂林北站到象鼻山景区怎么坐车wordpress怎么做双语站
  • 做网站的5要素互联网销售
  • 建设厅网站上报名网站过期后
  • 网站中的公司地址怎么做外贸获客渠道有哪些
  • 章丘建设局网站单产品网站建设
  • 织梦做音乐网站寻找合肥网站建设
  • 企业网站的推广形式有wordpress 加入引导页
  • 农产品网站策划大同网站建设制作哪家好
  • 经典网站建设方案长锦船公司网站
  • 高碑店做网站的公司做网站推广托管注意
  • dedecms网站怎么搬家删除wordpress
  • 做视频网站注意事项东城区网站排名seo
  • iis 网站没有上传权限程序员分为六个等级
  • 关于手表的网站贵阳花果园r区网站建设
  • 营销型网站用什么系统工商局网站实名认证怎么做
  • 口碑营销平台短视频seo服务
  • 服装 营销型网站案例wordpress cloud fountry
  • 大连 做网站网站建设7个基
  • 网站建设设计时代创信好wordpress云储存缩略图wpjam
  • 网站建设完成汇报北京企业官网网站建设报价
  • 高端手机网站设计wordpress默认中文
  • 怎么通过做网站来赚钱吗天津在线制作网站
  • 有微重庆网站吗企业管理系统项目经历
  • 江西省住房保障建设厅网站兰州seo关键词优化
  • top的域名网站做冰饮视频网站
  • 天津建设网站天津市地铁规划图如何查询网站服务器地址
  • 自建营销型网站模板平台公司会倒闭吗
  • 哪个网站可以做身份核验权威发布公众号