摸鱼不如来了解一下--PC端网页特效

简介: PC端网页特效1、元素偏移量offset系列

PC端网页特效


1、元素偏移量offset系列


●   使用offset系列相关属性可以动态地得到元素的位置(偏移),大小等(返回值不带单位)

●   element.offsetTop,返回元素的上边界相对于父元素(他的包含元素) 的上边界的偏移量(注意:这个父元素必须带有定位,否则得到的数据是相对于body的)

●   注意这个值不会因为页面滚动而变化

●   element.offsetLeft,返回元素的左边界相对于父元素左边界的偏移量(父元素必须定位,这个父元素必须带有定位,否则得到的数据是相对于body的)

●   element.offsetWidth,返回自身包括padding,边框和内容区的宽度

●   element.offsetHeight,返回自身包括padding,边框和内容区的高度

●   element.offsetParent,返回带有定位的父亲,若父元素无定位或者没有父元素,则返回body

●   注意:DOM操作节点的element.parentNode,这个返回的是最近一级的父元素,对父元素无定位的要求


区别element.offsetWidth与element.style.width


●   element.offsetWidth

●   1.可以获得任意样式表中的样式

●   2.offset系列的返回值是不带单位的数值

●   3.offset系列的返回值是包括border+padding+width

●   4.offsetWidth是只读属性,只能获取不能赋值

●   element.style.width

●   1.只能获得行内样式表的样式(修改样式时生成的也是行内样式)

●   2.style.width获得的是带单位的字符串

●   3.style.width返回值只包含width

●   4.style.width是可读可写的属性,可获取也可赋值

●   综上,想要获取元素的大小和位置用offset;想要修改样式用style

2、元素可视区域client系列


●   使用client系列的属性可以获得元素可视区的相关信息,可以动态的得到元素的边框大小,元素大小等

●   element.clientTop获取元素的上边框大小

●   element.clientLeft获取元素的左边框大小

●   element.clientWidth返回包括padding和内容区的宽度width,不包括边框。返回数值不带单位

●   element.cliientHeight返回包括padding和内容区的高度height,不包括边框。

4、立即执行函数


●   不需要调用,自己能够立马执行的函数

●   写法

●   (function( ){ })( )

网络异常,图片无法展示
|

●   (function( ){ }( ))

网络异常,图片无法展示
|

●   立即执行函数也可以传递参数,前面的括号里写形参,后面的括号里写实参

●   立即执行函数最大的作用就是独立创建了一个作用域


3、元素滚动scroll系列


●   element.scrollWidth,返回自身的实际宽度,不包括边框

●   element.scrollHeight,返回自身(内容)实际的高度,不含边框

●   注意与client系列的区别,client只有元素的宽度与高度,内容过多超出元素的部分不会计入

●   element.scrollTop,返回元素被滚动条卷去的上侧距离(竖直滚动条内容滚动的距离)

网络异常,图片无法展示
|


 

网络异常,图片无法展示
|


●   element.scollLeft,返回元素被滚动条卷去的左侧距离(水平滚动条内容滚动的距离)

●   scroll滚动事件,滚动条滚动触发(一般的触发对象是页面,故用document.onscroll())

●   注意

●   页面被滚动条 滚动的距离要用window.pageYOffset和window.pageXOffset获取

●    

●   元素内容被滚动条滚动的距离用element.scrollTop和element.scrollLeft

●   窗口滚动

●   滚动窗口到特定的位置:window.scroll(x,y)     注意:x和y不带单位


5、动画函数封装


●   动画原理

●   核心原理:通过setInterval( )不断移动盒子的位置

实现步骤

●   1、获取盒子当前位置

●   2、让盒子在当前位置加上一个移动距离

●   3、用定时器重复这个操作

●   4、加一个结束定时器的条件

●   5、元素要添加定位,通过element.style.left值来控制元素移动

网络异常,图片无法展示
|


动画函数封装


●   必须有两个参数:动画对象obj,移动的目标距离target

网络异常,图片无法展示
|


●   如果多个元素都使用这个动画效果,每次都要var声明timer定时器,定时器名字都一样,很容易引起歧义。此外开辟很多空间,会占用大量内存。而我们可以给不同的元素使用不同的定时器(自己专门用自己的定时器)

●   解决方法:js是一门动态语言,可以很方便的给当前对象添加属性

●   我们设置定时器时,不通过var声明,而是将其设置为当前对象的一个属性(将var timer = setInterval(function( ){ })改为当前对象obj的属性obj.timer = setInterval(function( ){ }))

●   1、避免了var 声明变量,不用在内存中开辟空间

●   2、通过设置对象属性的方式,使得每个调用动画函数的对象都能拥有自己的定时器,不与别的定时器重名不易混淆

●   每次点击按钮,就会启动一次定时器,动画的速度会越来越快,该如何解决?

●   在动画函数中,要在定时器前面加一行代码来清除当前定时器,即每次启动定时器时都会先清除已有的定时器,这样就不会有定时器叠加的问题了

网络异常,图片无法展示
|


缓动动画原理


●   缓动动画:元素运动速度有所变化,通常是慢慢减速至停止

●   思路:让元素每次的移动距离慢慢变小,速度就会变慢

●   算法:每次移动的距离(步长)step=(目标距离-现在的位置) / 10,此外还要做取整的操作,避免小数才能让元素在目标位置上停下来(在js中要尽量避免小数运算)

●   注意:因为元素移动每次位置都会变,所以步长公式要写在定时器里面

●   step = target - element.offsetLeft;要根据步长的正负来判断是向下取整还是向上取整

●   step = step > 0 ? Math.ceil(step) : Math.floor(step);

●   当前盒子位置等于目标位置则停止定时器

动画函数添加回调函数


●   回调函数原理:函数可以作为一个实参,传到另一个函数里面。当函数执行完之后再执行这个作为参数传入的这个函数,这个过程叫做回调

●   回调函数要写在定时器结束的位置

目录
相关文章
|
16天前
|
移动开发 编解码 前端开发
摸鱼必备-80款在线HTML小游戏
本文推荐了80款精彩的HTML5在线小游戏,涵盖益智、冒险、射击、体育等多种类型,适合各年龄段玩家。无需下载安装,随时随地畅玩。地址:[https://game.share888.top/](https://game.share888.top/)
76 7
摸鱼必备-80款在线HTML小游戏
|
22天前
|
移动开发 HTML5
HTML5熊猫弹跳手机小游戏源码
一款html5手机端小游戏源码,熊猫跳跃小游戏源码下载。熊猫脚底有弹簧,长按变化力度跳跃,计分游戏,html5手机熊猫也疯狂小游戏源代码。
34 5
|
4月前
|
移动开发 HTML5
自适应手机端青蛙吃蚊子小游戏html源码
HTML5青蛙吃蚊子游戏源码分享,音乐可以改的,自己在目录替换一下音乐就可以了训练手速和眼力的时候到了!
39 0
自适应手机端青蛙吃蚊子小游戏html源码
|
4月前
|
移动开发 前端开发 JavaScript
惊爆!一键解锁HTML父页面神秘技能,子页面Dialog华丽登场,让你的网页交互瞬间高大上,用户体验飙升!
【8月更文挑战第4天】在Web开发中,常需从父页面弹出子页面或对话框(Dialog)进行互动。HTML5虽引入了<dialog>元素,但许多开发者偏好使用自定义方案以获得更好的兼容性和样式控制。本示例利用HTML、CSS及JavaScript创建一个可弹出子页面的模态框:首先,在父页面中定义一个按钮触发弹出效果;接着,设置隐藏的模态框容器,内含一个iframe用于加载子页面;然后,通过CSS设定模态框样式;最后,借助JavaScript控制模态框的显示与隐藏。此方案灵活且易于定制,适用于多种应用场景。
111 12
|
6月前
|
JavaScript
欢乐打地鼠小游戏html源码
这是一款简单的js欢乐打地鼠游戏,挺好玩的,老鼠出来用鼠标点击锤它,击中老鼠获得一积分。
65 2
|
7月前
|
数据安全/隐私保护
炫酷的生日快乐网页 【附带源码】
炫酷的生日快乐网页 【附带源码】
114 4
|
7月前
|
JavaScript
【HTML特效程序】① 给女神表白的程序(让女神看科技烟花),输入名字自动生成表白二维码
【HTML特效程序】① 给女神表白的程序(让女神看科技烟花),输入名字自动生成表白二维码
47 0
|
7月前
|
PHP
HYBBS 表白墙网站PHP程序源码 可封装成APP
HYBBS 表白墙网站PHP程序源码 可封装成APP
60 1
新年Html动态特效祝福送给你
新年Html动态特效祝福送给你
424 0
新年Html动态特效祝福送给你
|
JavaScript 前端开发 API
码上开火车-Three.js 3D Web 游戏案例分享
码上开火车-Three.js 3D Web 游戏案例分享
347 0