js实现网页特效
创始人
2024-05-10 06:07:46
0

文章目录

  • 一、元素偏移量offest系列
    • 🥇offset与style的区别
    • 🎓案例1
    • 🦹🏽‍♂️案例2
    • 🐼案例3
  • 二、元素可视区client系列
  • 三、元素滚动scroll系列
    • 🏂🏿案例4:
    • 🔭补充 mouseenter事件
  • 四、动画函数封装
    • 💎动画函数简单封装操作
    • ☯️缓动动画原理
    • 🎅🏾缓动动画多个目标之间移动
    • 🍂动画函数添加回调函数
    • 🦦动画函数封装到单独JS文件里面


一、元素偏移量offest系列

offset系列相关属性可以动态的得到该元素的位置(偏移量)、大小等

  • 获取元素举例带有定位父元素的位置
  • 获取元年苏自身的大小(宽度,高度)
  • 注意:返回的数值都不带单位

在这里插入图片描述

实际运用:


Document

结果如下:

在这里插入图片描述

🥇offset与style的区别

在这里插入图片描述



Document

🎓案例1

获取鼠标在盒子内的坐标


Document

效果如下:

在这里插入图片描述

🦹🏽‍♂️案例2

模态框拖拽


登录会员关闭

效果如下:

在这里插入图片描述

中间模块可拖动

🐼案例3

京东放大镜(是前两个案例的综合实现)

需要可以去该地址下载

https://download.csdn.net/download/qq_39321234/87376880

二、元素可视区client系列

作用:获取元素的大小,边框的大小

在这里插入图片描述

client和offset最大的区别就是不包含边框



Document

立即执行函数:

不需要调用,能够了立马自己执行

立即执行函数最大的作用就算独立创建了一个作用域,里面所有的变量都是局部变量,不会有命名冲突的情况

语法1:

    

语法2:

    

示例:


Document

三、元素滚动scroll系列

作用:可以动态的得到元素的大小,滚动举例等

在这里插入图片描述

示例:


Document
我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容 我是内容我是内容 我是内容 我是内容 我是内容 我是内容 我是内容

🏂🏿案例4:

仿淘宝固定侧边栏(有兼容性问题)


Document
返回顶部
头部区域
banner区域
主体部分

存在侧边栏文字显示不出来的问题,可以通过封装自定义函数解决

🔭补充 mouseenter事件

当鼠标移动到元素上就会触发mouseenter事件
类似mouseover,两者事件的区别是
mouseenter鼠标经过自身盒子会触发,经过子盒子还会触发,mouseenter只会经过自身盒子触发

四、动画函数封装

核心原理:

通过定时器setInterval()不断移动盒子位置


Document

💎动画函数简单封装操作

动画函数封装的好处
可以个模块同时使用,不相互冲突

示例:


Document

具体效果为两个小块同向匀速运动

动画中必须加定位,absolute和relative都可以

利用给对象添加属性的方法对函数进行赋值操作

但程序存在一个小bug
例如下面这段代码:


Document

点击次数越多,紫块走得越快

在这里插入图片描述

解决方法就是每次调用函数前清除以前的定时器,保留当前的定时器执行

添加如下代码:

clearInterval(obj.timer)

☯️缓动动画原理

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

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


Document

🎅🏾缓动动画多个目标之间移动


Document

因为小数的原因不会回到原位
所以需要一个判断条件

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

🍂动画函数添加回调函数


Document夏雨荷

🦦动画函数封装到单独JS文件里面

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

在此处下载资料

https://download.csdn.net/download/qq_39321234/87378744

相关内容

热门资讯

南京官宣43个景区免费开放日   1月6日,南京市发改委公布了2026年度实行政府指导价管理的景区免费开放日,今年有43个旅游参观...
字节跳动:没有造车计划   针对网传的字节跳动和车企联合造车一事,字节跳动相关负责人7日回应中新经纬表示,传言不实,字节跳动...
没有哪一个国家可以充当国际警察...   所有不愿生活在“丛林法则”之下的国家,都应坚决维护国际法及《联合国宪章》宗旨和原则,旗帜鲜明反对...
李文荣,受贿数额特别巨大!曾任...   记者今天(7日)从最高人民检察院获悉,云南省人大常委会原党组成员、副主任李文荣涉嫌受贿一案,由国...
焦点访谈|以高水平协同推动长江...   央视网消息(焦点访谈):长江经济带横跨我国东中西三大板块,是我国科技资源最富集、创新创业活力最强...
四中全会精神在基层|森林里的“...   一个月前,湖南省常德市桃源县牯牛山国有林场完成了20公里的森林消防通道改造,所用的10万元资金,...
新疆新能源产业为绿色发展注入澎...   作为中国重要的能源战略保障基地,新疆正崛起为新能源产业高地。  澎湃的绿电,来自接近60%的新能...
商事调解条例 中华人民共和国国务院令 第827号  《商事调解条例》已经2025年12月19日国务院第75次常务会...
新增31个科学与应用项目 20...   记者从中国科学院空间应用中心获悉,2025年中国空间站空间科学、应用实验与技术试验项目进展顺利,...
新闻1+1丨2026首批“国补...   央视网消息:现在不少消费者在买车、买家电、买智能产品的时候,往往会问一句有“国补”吗,能补多少?...