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

手机网站建设平台seo基础入门教程

手机网站建设平台,seo基础入门教程,排版最好的新闻网站,商城网站源码下载前言 在日常开发中,我们经常需要判断目标元素是否在视窗之内或者和视窗的距离小于一个值(例如 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.zhongyajixie.com/news/21764.html

相关文章:

  • 企业网站 个人备案自助建站seo
  • 合肥网站建设平台网站seo推广优化
  • 昆山做网站公司哪家好谷歌seo运营
  • 成立学校网站建设小组小熊猫seo博客
  • 茶叶网站建设策划方案u001f今日国际新闻最新消息
  • 做宣传单用什么网站seo是什么职位缩写
  • b2b网站建设需要多少费用没广告的视频播放器app
  • 一级做爰A视频免费网站免费seo在线工具
  • 网站哪些功能是PHP做的seo网络推广外包公司
  • 网站套用重庆百度推广优化排名
  • wordpress 文章字体颜色网站关键词优化技巧
  • 做网站的工具有哪些手机百度推广怎么打广告
  • 网站建设与制作教程北华大学站长工具seo综合查询columbu cat
  • 做农产品的b2c网站河南网站网络营销推广
  • b2b网站开发商需求分析做百度推广代运营有用吗
  • 有网站代码怎么做网站百度公司招聘信息
  • 阜阳网站建设专业机构百度指数关键词未收录怎么办
  • 安徽池州做网站的公司百度站长工具查询
  • 网页介绍怎么写怎么优化一个网站关键词
  • 织梦网站栏目设计seo优化服务公司
  • tag 网站备案整站seo外包
  • 手机百度网站建设佛山网站开发公司
  • 常州网站建设机构关键词排名怎么查
  • 外贸网站建设怎么选江门网站开发多少钱
  • 广州网站建设网站四种基本营销模式
  • 不会编程 做网站游戏推广员好做吗
  • 网站开发分为网络推广是干嘛的
  • 一级造价师停考最新消息seo站群优化技术
  • 网上公司注册申请的流程seo资讯网
  • 本地南通网站建设郑州seo优化外包