slide 幻灯片的实现思路

在写这个slide幻灯片之前,首先理清楚思路,这样才能更快速实现代码。

假设制作5张图片的幻灯片,那么图片的初始位置如下:

13423234-b01198a10b1a4562.png

因为图片1-5是使用行内块的方式布局,只要控制图片1的div的margin-left改变,就可以跟推箱子一样,实现5个图片的左右滑动。

当图片从1向左移动至2,图片实现效果大致如下

13423234-f09bfb5b76a3470d.png

可以看到,只需要设置1号图片移动至左边,后面的图片就可以跟着向左移动。

功能需求

实现slides切换要实现功能如下:

  • 根据设置的图片数量,自动生成下方的圆点li标签,后续可以提供点击事件,切换图片
  • 点击下方的li圆点,根据点击li的索引index()来切换当前的图片
  • 点击左右两边的箭头,前后切换图片
  • 定时切换图片,鼠标移动入图片,则停止图片移动

那么下面来看看几种移动图片的情况。

码云代码仓库

因为代码贴上来篇幅过长,所以先上仓库地址,最后在末尾再贴上代码。

git clone git@gitee.com:kubernete/jquery-slide.git

首先编写好基本的HTML+CSS样式

13423234-2f7f8e2b12ce835a.png
13423234-8e0a2535d0249305.png

分支代码:base-html-css

下一步,开始编写jquery动态生成下方圆点li标签

代码分支:create-li

13423234-0940b18ab43284bf.png
13423234-c6841f0e7af7bc18.png

在动态创建li 标签的这里,必须每次使用$('<li></li>')来加入。不能写一个变量var $li = $('<li></li>')来加入,这样写法的话,就是重复加入同一个li,只会加成功一个。

错误写法示例如下:

13423234-e6d7ad35ffbc8748.png

点击下方的li圆点,根据点击li的索引index()来切换当前的图片

13423234-4fafeed7867fdc8c.png

根据点击li标签的序号来设置图片1的margin-left偏移量,就可以推箱子一样切换所有图片的位置。

点击prev、next两个按钮,来切换当前图片的位置

13423234-7cb566c051b5dd9c.png

只需要根据prev next 的点击事件对 nowIndex 的位置增减,控制图片1的margin-left偏移量即可。

编写定时任务,自动切换图片

13423234-089029c225ff4253.png

通过一个$direct方向的变量,以及$nowIndex的自增自减,就可以控制图片左右来回的移动了。

使用mouseentermouseleave事件,控制定时任务,避免不断切换,不好操作。

定时切换图片,鼠标移动入图片,则停止图片移动;鼠标离开图片,则图片开始移动。

13423234-2a4e6204296430ba.png
13423234-0e3934319aa622f6.png
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐