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

福州做网站的个体户电话查询租服务器空间

福州做网站的个体户电话查询,租服务器空间,广告公司简介,网站推广优化教程前言 在日常开发中,我们经常需要判断目标元素是否在视窗之内或者和视窗的距离小于一个值(例如 100 px),从而实现一些常用的功能,例如: 图片的懒加载列表的无限滚动计算广告元素的曝光情况可点击链接的预加…

前言

在日常开发中,我们经常需要判断目标元素是否在视窗之内或者和视窗的距离小于一个值(例如 100 px),从而实现一些常用的功能,例如:

  • 图片的懒加载
  • 列表的无限滚动
  • 计算广告元素的曝光情况
  • 可点击链接的预加载

实现方式

判断一个元素是否在可视区域,我们常用的有offsetTop、scrollTop和getBoundingClientRect

offsetTop、scrollTop

offsetTop,元素的上外边框至包含元素的上内边框之间的像素距离,其他offset属性如下图所示:

下面再来了解下clientWidthclientHeight

  • clientWidth:元素内容区宽度加上左右内边距宽度,即clientWidth = content + padding
  • clientHeight:元素内容区高度加上上下内边距高度,即clientHeight = content + padding

这里可以看到client元素都不包括外边距

最后,关于scroll系列的属性如下:

  • scrollWidthscrollHeight 主要用于确定元素内容的实际大小
  • scrollLeftscrollTop 属性既可以确定元素当前滚动的状态,也可以设置元素的滚动位置
    • 垂直滚动 scrollTop > 0* 水平滚动 scrollLeft > 0
  • 将元素的 scrollLeftscrollTop 设置为 0,可以重置元素的滚动位置

注意

  • 上述属性都是只读的,每次访问都要重新开始

下面再看看如何实现判断:

公式如下:

el.offsetTop - document.documentElement.scrollTop <= viewPortHeight 

代码实现:

function isInViewPortOfOne (el) {// viewPortHeight 兼容所有浏览器写法const viewPortHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight const offsetTop = el.offsetTopconst scrollTop = document.documentElement.scrollTopconst top = offsetTop - scrollTopreturn top <= viewPortHeight
} 

getBoundingClientRect

返回值是一个 DOMRect对象,拥有left, top, right, bottom, x, y, width, 和 height属性

const target = document.querySelector('.target');
const clientRect = target.getBoundingClientRect();
console.log(clientRect);// {
// bottom: 556.21875,
// height: 393.59375,
// left: 333,
// right: 1017,
// top: 162.625,
// width: 684
// } 

属性对应的关系图如下所示:

当页面发生滚动的时候,topleft属性值都会随之改变

如果一个元素在视窗之内的话,那么它一定满足下面四个条件:

  • top 大于等于 0
  • left 大于等于 0
  • bottom 小于等于视窗高度
  • right 小于等于视窗宽度

实现代码如下:

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);
} 

最后

整理了一套《前端大厂面试宝典》,包含了HTML、CSS、JavaScript、HTTP、TCP协议、浏览器、VUE、React、数据结构和算法,一共201道面试题,并对每个问题作出了回答和解析。

有需要的小伙伴,可以点击文末卡片领取这份文档,无偿分享

部分文档展示:



文章篇幅有限,后面的内容就不一一展示了

有需要的小伙伴,可以点下方卡片免费领取

http://www.yayakq.cn/news/958136/

相关文章:

  • 北京网站设计制作关键词优化茂名seo网站推广
  • wordpress数据库内容搬家网站 优化手机版
  • 南阳企业网站建设哪里有平面设计
  • 网站维护 内容怎么出售友情链接
  • 卖模具做哪个网站好阿里云网站建设流程
  • 开发网站建设方案链家网站开发技术
  • 怎么做有声小说网站播音员郑州竞价托管代运营
  • 郑州网站制作的公司哪家好广告加盟
  • 深圳做分销网站建设做网站是不是需要服务器
  • 台州网站推广外包建设大型网站设计公司
  • 上海建设交通网站杭州建设职业学校官方网站
  • 大连网站制作的公司哪家好长沙房产信息网官网
  • 网络公司企业网站模板中英文网站建设的差别
  • 转播网站如何做手机网站设计尺寸
  • 深圳网站建设定制免费制作个人网站app
  • 凡科免费做的网站wordpress主题圆角
  • 北京市建设信息网站个人外贸网站
  • 搜狗站长管理平台怎么开发一款游戏
  • 滨湖区建设局官方网站怎样免费推广网站
  • 广告公司做的网站字体侵权功能分类模块类型网站
  • 百度云网盘资源分享网站工程建设领域包括哪些
  • 用vuejs做网站十大进销存管理软件
  • 烟台市福山区住房和建设局网站那个网站上有打码的任务做
  • 涪陵网站建设公司网址之家
  • 电子商务网站建设 课后答案威海网站建设费用
  • 中山服装网站建设无锡网站的优化
  • 免费搭建购物网站免费空间如何放网站
  • 该如何建设和优化一个网站网站建设目标初步目标
  • 青海省建设工程监理协会网站建网站服务器是什么东西
  • 网站页面头部设计说明佛山网站搭建公司哪家好