slide 幻灯片的实现思路
在写这个slide幻灯片之前,首先理清楚思路,这样才能更快速实现代码。
假设制作5张图片的幻灯片,那么图片的初始位置如下:
![](https://img.haomeiwen.com/i13423234/b01198a10b1a4562.png)
因为图片1-5是使用行内块的方式布局,只要控制图片1的div的margin-left
改变,就可以跟推箱子一样,实现5个图片的左右滑动。
当图片从1向左移动至2,图片实现效果大致如下
![](https://img.haomeiwen.com/i13423234/f09bfb5b76a3470d.png)
可以看到,只需要设置1号图片移动至左边,后面的图片就可以跟着向左移动。
功能需求
实现slides切换要实现功能如下:
- 根据设置的图片数量,自动生成下方的圆点
li
标签,后续可以提供点击事件,切换图片 - 点击下方的
li
圆点,根据点击li
的索引index()
来切换当前的图片 - 点击左右两边的箭头,前后切换图片
- 定时切换图片,鼠标移动入图片,则停止图片移动
那么下面来看看几种移动图片的情况。
码云代码仓库
因为代码贴上来篇幅过长,所以先上仓库地址,最后在末尾再贴上代码。
git clone git@gitee.com:kubernete/jquery-slide.git
首先编写好基本的HTML+CSS样式
![](https://img.haomeiwen.com/i13423234/2f7f8e2b12ce835a.png)
![](https://img.haomeiwen.com/i13423234/8e0a2535d0249305.png)
分支代码:base-html-css
下一步,开始编写jquery动态生成下方圆点li
标签
代码分支:create-li
![](https://img.haomeiwen.com/i13423234/0940b18ab43284bf.png)
![](https://img.haomeiwen.com/i13423234/c6841f0e7af7bc18.png)
在动态创建li
标签的这里,必须每次使用$('<li></li>')
来加入。不能写一个变量var $li = $('<li></li>')
来加入,这样写法的话,就是重复加入同一个li
,只会加成功一个。
错误写法示例如下:
![](https://img.haomeiwen.com/i13423234/e6d7ad35ffbc8748.png)
点击下方的li圆点,根据点击li的索引index()来切换当前的图片
![](https://img.haomeiwen.com/i13423234/4fafeed7867fdc8c.png)
根据点击li
标签的序号来设置图片1的margin-left
偏移量,就可以推箱子一样切换所有图片的位置。
点击prev、next两个按钮,来切换当前图片的位置
![](https://img.haomeiwen.com/i13423234/7cb566c051b5dd9c.png)
只需要根据prev
next
的点击事件对 nowIndex
的位置增减,控制图片1的margin-left
偏移量即可。
编写定时任务,自动切换图片
![](https://img.haomeiwen.com/i13423234/089029c225ff4253.png)
通过一个$direct
方向的变量,以及$nowIndex
的自增自减,就可以控制图片左右来回的移动了。
使用mouseenter
和mouseleave
事件,控制定时任务,避免不断切换,不好操作。
定时切换图片,鼠标移动入图片,则停止图片移动;鼠标离开图片,则图片开始移动。
![](https://img.haomeiwen.com/i13423234/2a4e6204296430ba.png)
![](https://img.haomeiwen.com/i13423234/0e3934319aa622f6.png)
网友评论