💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
[TOC] # 案例:网页轮播图 **轮播图也称为焦点图,是网页中比较常见的网页特效。** 一个大盒子,轮播图用ul装,ul的盒子可以大于父盒子, ![](https://img.kancloud.cn/3f/17/3f174eb1d1e811d5f8b4033e8d945752_315x259.png) ![](https://img.kancloud.cn/84/73/8473c7592272ad92d1826e8ad25ac2da_865x287.png) ## 功能需求: 1.鼠标经过轮播图模块,左右按钮显示,离开隐藏左右按钮。 2.点击右侧按钮一 次,图片往左播放一张,以此类推,左侧按钮同理。 3.图片播放的同时,下面小圆圈模块跟随-起变化。 4.点击小圆圈,可以播放相应图片。 5.鼠标不经过轮播图,轮播图也会自动播放图片。 6.鼠标经过 ,轮播图模块,自动播放停止。 ## 1.案例分析 (隐藏左右按钮) ①因为js较多,我们单独新建js文件夹,再新建js文件,引入页面中。 ②此时需要添加load事件。(页面加载完,在处理事件) ③鼠标经过轮播图模块,左右按钮显示,离开隐藏左右按钮。 ④显示隐藏display按钮。 ### js引入代码 ~~~ window.addEventListener('load', function() { alert(1); }) ~~~ ### 1.代码 ![](https://img.kancloud.cn/28/5e/285e07ab28df853f98837368d5062302_1046x529.png) ## ①动态生成小圆圈 ②核心思路:小圆圈的个数要跟图片张数一致 ③所以首先先得到ul里面图片的张数(图片放入li里面,所以就是li的个数) ④利用循环动态生成小圆圈(这个小圆圈要放入ol里面) ⑤创建节点createElement('li') ⑥插入节点ol.appendChild(li) ⑦第一个小圆圈需要添加current类 ![](https://img.kancloud.cn/ed/d1/edd1583e82c5c80112d3dd3444ae1a43_853x425.png) ## 排他思想 (小按钮颜色变化) ①小圆圈的排他思想 ②点击当前小圆圈,就添加current类 ③其余的小圆圈就移除这个current类 ④注意:我们在刚才生成小圆圈的同时,就可以直接绑定这个点击事件了。 ![](https://img.kancloud.cn/e9/2d/e92d5a4c0656419a8505cc4f23f79ab9_1148x610.png) ## ①点击小圆圈滚动图片 ②此时用到animate动画函数,将js文件引入(注意,因为index.js 依赖animate.js所以,animate.js 要写到index.js上面) ③使用动画函数的前提,该元素必须有定位 ④注意是ul移动而不是小li **⑤**滚动图片的核心算法:点击某个小圆圈,就让图片滚动小圆圈的索引号乘以图片的宽度做为ul移动距离 ⑥此时需要知道小圆圈的索引号,我们可以在生成小圆圈的时候,给它设置一个自定义属性,点击的时候获取这个自定 义属性即可。 ![](https://img.kancloud.cn/7b/cc/7bcc1e01d45423690ce17af080b10c85_769x145.png) ![](https://img.kancloud.cn/26/d5/26d51940de054f8ffc8446c660aa5428_457x373.png) ![](https://img.kancloud.cn/67/63/6763e3171a669796d8459e0109ad529d_1038x387.png) ![](https://img.kancloud.cn/c1/1c/c11cec803d0302fd1db140def81a9d60_1017x646.png) ## 点击右按钮,图片变化 (html 代码把第一个图片复制,放在最后) ①点击右侧按钮一次,就让图片滚动一张。 ②声明一个变量num,点击一次,自增1,让这个变量乘以图片宽度,就是ul 的滚动距离。 ③图片无缝滚动原理 ④把ul第一个i复制-份,放到ul的最后面 ⑤当图片滚动到克隆的最后一张图片时,让ul快速的、 不做动画的跳到最左侧: left 为0 ⑥同时num赋值为0,可以从新开始滚动图片了 css样式 ![](https://img.kancloud.cn/53/9c/539c4f673d15c6dcc536af575f5de23a_453x83.png) js ![](https://img.kancloud.cn/86/b4/86b4af280f41647d70564e63daa31a4f_1061x384.png) ## 优化 点击右按钮,图片变化 (在生成小圆圈之后) **①点击右侧按钮,小圆圈跟随变化** ②最简单的做法是再声明一个变量circle,每次点击自增1,注意,左侧按钮也需要这个变量,因此要声明全局变量。 ③但是图片有5张,我们小圆圈只有4个少一个,必须加一-个判断条件 ④如果circle == 4就从新复原为0 ![](https://img.kancloud.cn/f2/cf/f2cf1e9e5b4498c3f44e8ead101f9e90_742x227.png) ![](https://img.kancloud.cn/19/5a/195ac00a259ae2f65566c157d615fcd5_1069x741.png) ![](https://img.kancloud.cn/a3/12/a3121f30343e9e9f3d81654d55de797e_800x106.png) ## 优化小圆圈 和按钮 能同步 ![](https://img.kancloud.cn/45/4b/454b035ccaa03e1839570ef872dc30ef_954x390.png) # 左侧按钮 ![](https://img.kancloud.cn/52/59/5259e858e4f542ef70233ef7f29ed901_1088x659.png) ![](https://img.kancloud.cn/c2/94/c2945fc4e756c915afad569842e0403b_801x347.png) 优化 下面 ![](https://img.kancloud.cn/02/62/0262e61da648da160a03f131da05f5fb_872x286.png) ![](https://img.kancloud.cn/ec/1c/ec1c107fcee076387fab4253b7f1c7c1_1001x340.png) # ①自动播放功能 ②添加一个定时器. ③自动播放轮播图,实际就类似于点击了右侧按钮 ![](https://img.kancloud.cn/9e/b8/9eb89d49d859d277922a3295f6e90382_577x38.png) ⑤鼠标经过focus就停止定时器 ⑥鼠标离开focus就开启定时器 ![](https://img.kancloud.cn/b6/a1/b6a18e24e42e0816217f3ddaf772ba45_715x195.png) ⑤鼠标经过focus就停止定时器 ⑥鼠标离开focus就开启定时器 ![](https://img.kancloud.cn/69/a6/69a6ebf212d09489c3e519cfe3691ec6_934x512.png)