版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章常见特效开发掌握万千网页特效背后的原理7个实战案例动画原理深度解析信号量编程模式本章学习目标系统学习常见网页特效开发掌握轮播、滚动、动画等核心特效技术掌握动画实现的核心原理理解"克隆+瞬移"等视觉欺骗技巧学会信号量编程模式多按钮协作,状态协调的核心方法理解"克隆+瞬移"魔术技巧揭秘无缝循环动画背后的实现机制实战案例1:无穷连续滚动动画无缝连续滚动特效是网页中用于信息展示的常用特效,如图5-1所示。一排图片连续从右向左运动,首尾相接从不间断、周而复始。当用户鼠标触碰它的时候,动画会暂时停止;用户鼠标移开,动画继续。实战案例1:无穷连续滚动动画CASE01核心原理01克隆图片队列形成"小火车"02运动到临界点瞬间移回原点03利用视觉欺骗实现"周而复始"视觉欺骗瞬间移动时展示内容与初始内容相同,用户察觉不到"乾坤大挪移"实战案例1:无穷连续滚动动画最核心算法:实战案例2:跑马灯轮播跑马灯轮播是最常见的轮播图形式,如图5-6所示。当点击左右按钮或者小圆点时,图片将通过左右水平运动进行切换,如图5-7所示。跑马灯轮播特效的原理和“无缝连续滚动动画”类似:多张图片排成一排,形成一队“小火车”,单击按钮或小圆点时调用animate()函数使“小火车”进行运动。而由于大盒子设置了overflow:hidden“溢出隐藏”,所以我们同一时间只能看见一张图片。就像从魔术师的帽子里变出的兔子实际上是提前准备好的,跑马灯轮播图布局中虽然只能看见一张图片,但是我们知道它只是一个“火车头”,它右侧还有多张图片,只不过被“溢出隐藏”了。“小火车”以大盒子为基准进行绝对定位,初始left值是0。left值减小,“小火车”将左移,从而显示出后面的“车厢”:假设每张图片宽度都是500px,如果“小火车”的left值变为-500px,那么将恰好显示1号图片;如果“小火车”的left值变为-1000px,那么将恰好显示2号图片,以此类推,如图58所示。实战案例2:跑马灯轮播实战案例2:跑马灯轮播idx信号量编程模式idx全局变量标识记录当前显示的图片编号多元素共享左右按钮、小圆点协同工作克隆首图实现无缝循环切换防止动画积累使用is(":animated")核心代码逻辑执行流程点击按钮idx++改变信号量移动小火车varidx=0;//克隆第一张图片if($("#unit").is(":animated"))return;idx++;$("#unit").animate({"left":idx*-500},400);实战案例3:上下滑动跑马灯双信号量编程模式idx当前显示的大图记录用户正在查看的大图编号,由触碰缩略图触发改变触碰缩略图改变大图small_idx当前打头的缩略图记录缩略图列表的"打头"位置,由上下按钮控制上下按钮移动缩略图两个信号量独立控制,互不干扰布局特点纵向布局大图和缩略图列表排成两列溢出隐藏overflow:hidden控制可见区域整体运动ul作为"组合体"整体移动性能优化top属性translateY使用transform代替传统定位,避免页面重排性能更好GPU加速流畅度更高60fps动画实战案例4:呼吸轮播呼吸轮播也称“交叉淡入淡出轮播”,也是网页中常见的动画轮播形式,如图519所示。当点击左右按钮或者小圆点时,图片通过淡出、淡入的动画进行切换,如图520所示,初始图片是“故宫角楼”,点击右按钮时,“故宫角楼”图片淡出,下一张图片“鸟巢”淡入。淡出淡入如同呼吸,“呼吸轮播”因此得名。实战案例4:呼吸轮播交叉淡入淡出效果图片如同呼吸般平滑过渡,一张淡出同时另一张淡入实现原理01图片"摞在一起"使用绝对定位,所有图片重叠在同一位置02动画同时进行fadeIn()和fadeOut()并发执行03信号量控制idx标识当前显示的图片核心代码示例动画机制由于idx在中间发生了变化,两次操作的元素下标相差1,实现不同图片的淡入淡出切换varidx=0;//信号量改变前的操作$("li").eq(idx).fadeOut("fast");//信号量自增idx++;if(idx>4)idx=0;//信号量改变后的操作$("li").eq(idx).fadeIn("fast");实战案例5:无限循环缩略图呼吸轮播业务拆分思想大图部分呼吸轮播机制fadeInfadeOut图片叠加缩略图部分无穷滚动动画克隆队列瞬移复位两个独立信号量idx大图索引small_idx缩略图索引关键代码索引处理原理克隆后图片索引变为0-6和7-13,通过%7运算将索引统一映射到0-6,确保正确匹配大图$(".small_nav_unitli").mouseenter(function(){//旧图淡出$(".big_img_listli").eq(idx).stop().fadeOut();//关键:取余处理克隆图片索引idx=$(this).index()%7;//新图淡入$(".big_img_listli").eq(idx).stop().fadeIn();});实战案例5:无限循环缩略图呼吸轮播本节学习制作带有缩略图的呼吸轮播,如图6-21所示。在上节“呼吸轮播”基础上增加了缩略图。由于一共有7张图片参与轮播展示,而同时只有5张缩略图可见,所以给缩略图配置了左右按钮,用户可以点击左右按钮移动缩略图队列。缩略图队列是周而复始、无穷滚动的。实战案例5:无限循环缩略图呼吸轮播web特效五花八门,但是它们都有基本的“原理模型”:大图部分是呼吸轮播机制,所以7张大图要“摞在一起”;缩略图部分,为实现“周而复始”、“源源不断”的图片运动,所有缩略图要排成一行,形成“小火车”,还要克隆图片队列,使用之前学习的“无穷连续滚动动画”原理进行“运动”和“瞬间移动”动画。布局如图5-25所示。实战案例5:无限循环缩略图呼吸轮播实战案例6:拼图轮播马赛克式逐步出现图片以随机小方格形式逐步拼合,营造炫酷视觉效果实现原理01100个div盒子10×10网格拼合完整图片02背景定位差异background-position值各不相同03随机延迟淡入Math.random()控制出现时机函数节流锁防止用户快速点击造成动画混乱800毫秒后才能触发下一次切换动画机理是:使用100个div盒子当做“小方格”,每个div都有相同的背景图片(比如都是向日葵),但是background-position(背景定位)值不同,像“CSS精灵”技术一样,让它们可以巧妙拼合成一张完整的图片,如图5-29所示。实战案例6:拼图轮播实战案例7:异形滚动图片错落有致、彼此交叠突破传统布局限制,创造动态立体视觉效果实现方式6六个位置系统A、B、C、D、E、Z不同布局属性类名封装属性位置、宽高、透明度通过类名控制点击切换序列按钮触发类名重新分配关键点:倒序遍历避免类名冲突,确保每个元素正确继承前一个兄弟的类名实战案例7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工地材料安全防护方案
- 广东省中山市2026年重点中学小升初语文考试真题卷
- 2026年辽宁葫芦岛市高职单招英语试题含答案
- 安徽省蚌埠市2026年重点中学小升初语文考试真题试卷+答案
- 2026年江西高考地理题库含答案
- 福建省厦门市初二学业水平地理生物会考试卷题库及答案
- 2026年重庆高考生物试卷附答案
- 2026年山西省晋中市重点学校小升初英语考试真题试卷(含答案)
- 2026年雨城区中小学编制教师招聘笔试备考试题及答案详解
- 2026四川宜宾发展产城投资有限公司及子公司第二批员工招聘16人笔试参考题库及答案详解
- JJF 1544-2024拉曼光谱仪校准规范
- 《基坑支护中断面支护的结构设计计算案例》12000字
- 乙二醇密度及阻力计算
- 招标文件范本三篇
- 22年辐射安全考核试题-放射治疗
- JBT 11270-2024 立体仓库组合式钢结构货架技术规范(正式版)
- 学科建设课件
- 2020年承包人承揽工程项目一览表
- 俯卧位通气操作规范
- 200W逆变电源初步设计
- 中小学班主任培训讲座-班主任提升培训
评论
0/150
提交评论