PC 端网页特效_pc端是电脑还是手机

PC 端网页特效_pc端是电脑还是手机一、元素偏移量offset系列(一)offset概述1、offset翻译过来就是偏移量,我们使用offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等。(1)获得元素距离带有定位父元素的位置;(2)获得元素自身的大小(宽度高度);(3)注意:返回的数值都不带单位2

大家好,欢迎来到IT知识分享网。

一、元素偏移量 offset 系列

(一)offset 概述

1、offset 翻译过来就是偏移量,我们使用 offset 系列相关属性可以动态的得到该元素的位置(偏移)、大小等。

(1)获得元素距离带有定位父元素的位置;

(2)获得元素自身的大小(宽度高度);

(3)注意:返回的数值都不带单位

2、offset 系列常用属性:

offset系列属性 作用
element.offsetParent 返回作为该元素带有定位的父级元素 如果父级都没有定位则返回body
element.offsetTop 返回元素相对带有定位父元素上方的偏移
element.offsetLeft 返回元素相对带有定位父元素左边框的偏移
element.offsetWidth 返回自身包括padding、边框、内容区的宽度,返回数值不带单位
element.offsetHeight 返回自身包括padding、边框、内容区的高度,返回数值不带单位

 

 

 

 

 

 

 

PC 端网页特效_pc端是电脑还是手机

 

(二)offset 与 style 区别

1、offset

(1)offset 可以得到任意样式表中的样式值

(2)offset 系列获得的数值是没有单位的

(3)offsetWidth 包含padding + border + width

(4)offsetWidth 等属性是只读属性,只能获取不能赋值

(5)所以,我们想要获取元素大小位置,用offset更合适

2、style

(1)style 只能得到行内样式表中的样式值

(2)style.width 获得的是带有单位的字符串

(3)style.width 获得不包含padding 和 border 的值

(4)style.width 是可读写属性,可以获取也可以赋值

(5)所以,我们想要给元素更改值,用style更合适

 二、元素可视区 client 系列

(一)

1、client 翻译过来就是客户端,我们使用 client 系列的相关属性来获取元素可视区的相关信息。通过 client 系列的相关属性可以动态的得到元素的边框大小、元素大小等。

2、

client系列属性 作用
element.clientTop 返回元素上边框的大小
element.clientLeft 返回元素左边框的大小
element.clientWidth 返回自身包括padding、内容区的宽度,不含边框,返回数值不带单位
element.clientHeight 返回自身包括padding、内容区的高度,不含边框,返回数值不带单位

 

 

 

 

 

PC 端网页特效_pc端是电脑还是手机

(二)立即执行函数

1、语法格式:

(function() {})()  或者  (function(){}())

2、主要作用:创建一个独立的作用域,避免了命名冲突的问题

 (三)

1、下面三种情况都会触发 load 事件:

(1)a 标签的超链接

(2)F5或者刷新按钮(强制刷新)

(3)前进后退按钮

2、但是火狐中,有个特点,有个“往返缓存”,这个缓存中不仅保存着页面数据,还保存了DOM和JavaScript的状态,实际上是将整个页面都保存在内存里。

所以此时后退按钮不能刷新页面。

此时可以使用 pageshow 事件来触发。这个事件在页面显示时触发,无论页面是否来自缓存。在页面加载页面中,pageshow会在load事件触发后触发;根据事件对象中的persisted来判断是否是缓存中的页面触发的pageshow事件,注意这个事件给window添加。

三、元素滚动 scroll 系列

(一)元素 scroll 系列属性

1、scroll 翻译过来就是滚动的,我们使用 scroll 系列的相关属性可以动态的得到该元素的大小、滚动距离等。

scroll系列属性 作用
element.scrollTop 返回被卷去的上侧距离,返回数值不带单位
element.scrollLeft 返回被卷去的左侧距离,返回数值不带单位
element.scrollWidth 返回自身实际的宽度,不含边框,返回数值不带单位
element.scrollHeight 返回自身实际的高度,不含边框,返回数值不带单位

 

 

 

 

 

 

PC 端网页特效_pc端是电脑还是手机

(二)页面被卷去的头部兼容性解决方案

1、需要注意的是,页面被卷去的头部,有兼容性问题,因此被卷去的头部通常有如下几种写法:

(1)声明了 DTD,使用 document.documentElement.scrollTop

(2)未声明 DTD,使用 document.body.scrollTop

(3)新方法window.pageYOffset 和 window.pageXOffset,IE9开始支持

PC 端网页特效_pc端是电脑还是手机

 

(三)三大系列总结

1、

三大系列大小对比 作用
element.offsetWidth 返回自身包括padding、边框、内容区的宽度,返回数值不带单位
element.clientWidth 返回自身包括padding、内容区的宽度,不含边框,返回数值不带单位
element.scrollWidth 返回自身实际的宽度,不含边框,返回数值不带单位

 

 
 

 

2、它们的主要用法:

(1)offset系列经常用于获取元素位置:offsetLeft、offsetTop
(2)client经常用于获取元素大小:clientWidth、clientHeight
(3)scroll经常用于获取滚动距离:scrollTop、scrollLeft
(4)注意页面滚动的距离通过 window.pageXOffset 获得

(四)mouseenter 和 mouseover的区别
mouseenter 鼠标事件
1、当鼠标移动到元素上时就会触发 mouseenter 事件
2、类似 mouseover ,它们两者之间的差别是:
mouseover 鼠标经过自身盒子会触发,经过子盒子还会触发。mouseenter 只会经过自身盒子触发
3、之所以这样,就是因为mouseenter不会冒泡
4、跟mouseenter搭配鼠标离开 mouseleave 同样不会冒泡

四、动画函数封装

(一)动画实现原理
1、核心原理:通过定时器 setInterval() 不断移动盒子位置
2、实现步骤:
(1)获得盒子当前位置
(2)让盒子在当前位置加上1个移动距离
(3)利用定时器不断重复这个操作
(4)加一个结束定时器的条件
(5)注意此元素需要加定位,才能使用element.style.left

 (二)动画函数给不同元素记录不同定时器

1、如果多个函数都使用这个动画函数,每次都要var 声明定时器。我们可以给不同的元素使用不同的定时器(自己专门用自己的定时器)

2、核心原理:利用 JS 是一门动态语言,可以很方便的给当前对象添加属性

 (三)缓动效果原理

1、缓动动画就是让元素运动速度有所变化,最常见的是让速度慢慢停下来

2、思路:

(1)让盒子每次移动的距离慢慢变小,速度就会慢慢落下来

(2)核心算法:(目标值-现在的位置)/ 10  作为每次移动的距离步长

(3)停止的条件是:让当前盒子位置等于目标位置就停止定时器

 (四)动画函数多个目标值之间移动

可以让动画函数从800移动到500.

当我们点击按钮时候,判断步长是正值还是负值。

1、如果是正值,则步长往大了取整

2、如果是负值,则步长向小了取整

(五)动画函数封装到单独JS文件里面

因为以后经常使用这个动画函数,可以单独封装到一个JS文件里面,使用的时候引用这个JS文件即可。

1、单独新建一个JS文件

 五、常见网页特效案例

(一)节流阀

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

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

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

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

if(flag) {flag = false;do something}  关闭水龙头

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

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/29251.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信