offsetWidthclientWidthscrollWidth区别

Posted MaNqo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了offsetWidthclientWidthscrollWidth区别相关的知识,希望对你有一定的参考价值。

对offset、client、scroll这几个有关高度的值不是很熟悉,所以写了这篇博客~

元素scroll系列

scroll系列的相关属性可以动态地得到该元素的大小,滚动距离等(真实内容高度)

元素被卷去的头部,用element.scrollTop;页面被卷去的头部,可以通过windows.pageYOffset获得
offset

scroll

client

  • offset系列经常用于获取元素位置 offsetLeft offsetTop
  • client系列用于获取元素大小 clientWidth clientHeight
  • scroll经常用于获取滚动距离 scrollTop scrollLeft

mouseover和mouseenter区别

mouseover鼠标经过自身盒子会触发,经过子盒子还会触发。mouseenter只会经过自身盒子触发

mouseenter不会冒泡,它搭配的mouseleave也不会冒泡

动画函数封装

核心原理:通过定时器setInterval()不断移动盒子位置。

setInterval()

  • 定时调用
  • 将一个函数,每隔一段事件执行一次
  • 参数: 1. 回调函数,该函数会每隔一段时间调用一次
    2. 每次调用间隔的时间,单位是毫秒
  • 返回值:返回一个number类型的数据,这个数字用来作为定时器的唯一标识

clearInterval()

  • 用来关闭一个定时器
  • 需要一个定时器的标识来作为参数
  • 可以接受任意参数,如果参数是一个有效的定时器的标识,则停止对应定时器

setTimeout()

  • 样式调用一个函数不马上执行,而是隔一段时间后在执行,而且只会执行一次
  • 延时调用和定时调用的区别,定时调用会执行多次,而延时调用只会进行一次
  • 样式调用和定时调用实际上是可以相互替换的

clearTimeOut()

var timer = setTimeout(function()
    console.log(1);
,2000)
clearTimeOut(timer);

节流阀

防止轮播图按钮连续点击造成播放过快

目的:当上一个函数动画内容执行完毕,再去执行下一个函数动画,让事件无法连续触发

核心实现思路:利用回调函数,添加一个变量来控制,锁住函数和解锁函数

开始设置一个变量var flag = true;

if(flag)flag = false; do sth 关闭水龙头

利用回调函数,动画执行完毕,flag=true 打开水龙头

以上是关于offsetWidthclientWidthscrollWidth区别的主要内容,如果未能解决你的问题,请参考以下文章