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

韩都衣舍的网站建设宁波seo自然优化技术

韩都衣舍的网站建设,宁波seo自然优化技术,网站留言效果怎么做,那个网站是做辅材批发的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/326217.html

相关文章:

  • asp下载网站代码长沙seo优化哪家好
  • 昆山app网站制作营销推广网站
  • 贵阳网站建设贵阳网站建设哪家好app开发价格表
  • 欧洲paypal网站如何做网页制作
  • 程序员做项目的网站常州百度搜索优化
  • jsp源码做网站株洲seo优化推荐
  • 做网站前期需求分析收费么交易平台官网
  • 外贸网站首页宁波seo外包公司
  • 设计网站推荐设计酷站360优化大师最新版下载
  • 优质网站建设制作购物网站
  • 网站建设合同 域名续期seo入门讲解
  • 设计的商城网站建设seo的工作流程
  • 西山区建设局网站长沙网站建设
  • b2c网站访问量seo是什么职业做什么的
  • 如何增加网站关键词百度指数查询入口
  • 番禺网站建设哪家强百度运营优化师
  • 网络营销专业技能百度seo推广方案
  • 上海哪些做网站seo排名优化价格
  • 如何诊断网站为何被降权今日小说百度搜索风云榜
  • 网站建设歺金手指排名13网站服务器搭建
  • 宿州网站推广亚马逊跨境电商开店流程及费用
  • 网站开发硬件要求武汉今日头条最新消息
  • 免费建设展示网站浙江百度查关键词排名
  • 合肥建站比较便宜的公司制作网站代码
  • 济南君哲网站建设公司网站推广的几种方法
  • 制作医院网站百度认证有什么用
  • 锦州哪家做网站新闻源软文推广平台
  • 外贸网站建设入门厦门站长优化工具
  • 网站建设新方向创量广告投放平台
  • 外贸建站及推广网络营销服务外包