当前位置: 首页 > 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.shuangfujiaoyu.com/news/1632.html

相关文章:

  • 找个建设网站的网管成都关键词自然排名
  • pos机做网站推广肇庆疫情最新消息
  • 如何查询网站是不是诈骗网站网页设计制作网站素材
  • 网站设计器上海网络推广服务公司
  • 传统网站怎么做前端模块seo裤子的关键词首页排名有哪些
  • 建设银行手机官方网站下载饥饿营销案例
  • 企业门户网站的意义短视频seo询盘获客系统
  • 建设银行企业银行官网微信小程序排名关键词优化
  • 做网站怎么返回首页朋友圈的广告推广怎么弄
  • 上海部道网站 建设百度搜索排名怎么靠前
  • 薛华成 旅游网站建设卖友情链接的哪来那么多网站
  • 网站建设公司哪家专业天津债务优化公司
  • 上海网站建设公司哪家好推广平台排行榜
  • 厦门做网站多网页模板建站系统
  • 怎么用文件传输协议登录网站百度推广后台登陆入口
  • dw做网站有哪些用处网络推广的主要工作内容
  • 网站建设企业的未来发展计划中山seo
  • 免费自助建站系统有哪些商城小程序开发哪家好
  • 网站seo优化要懂得做微调seo优化排名百度教程
  • 网站模板 英文如何用手机免费创建网站
  • 做catalog的免费网站流量神器
  • 别人做的网站不能用app推广30元一单
  • 网站建设成本预算网站建设优化公司
  • 网站建设中是什么意思怎么用网络推广业务
  • 全国网站建设公司实力排名全国广告投放平台
  • 做移动网站快速排名软件长沙服务好的网络营销
  • 怎样创建网站的代码优秀的软文广告案例
  • 自己做影视网站怎么找代理商网络营销能干什么工作
  • 网站优化建设扬州石家庄疫情最新情况
  • 老版本hao123上网导航网站用户体验优化