轮播

轮播的实现原理是怎样的?可以抽象出哪些函数(or接口)供使用?(比如 play())

轮播的原理是将轮播的图片水平排列,在展示的视口内显示内容,超出视口范围的内容隐藏。通过设置位置偏移在视口内显示出需要看到的内容。

实现轮播效果思路

HTML,CSS部分:

图片放置在ul标签内,外部包裹div,设置position:relative.隐藏视口外的内容overflow:hidden;ul设置position:absolute。li内的img设置左浮动。

js部分:

  • 获取ul节点,获取图片数量imgCount、获取图片长度imgWidth,声明pageIndex记录当前图片位置。
  • clone第一张图片添加在图片列表的最后,clone最后一张图片添加在图片列表的最前面,因为在最前面添加了一张图片,所以需要一个向右图片宽度的偏移。
  • 获取图片列表的宽度,ul内的图片数量+clone的两张图片
  • 定义函数playNext(len),playPre(len)
  • playNext(): 执行该函数时使用动画将ul向左偏移一个图片(假设len=1)的宽度,动画结束后,将pageIndex加1,同时判断curIndex是否为最后一个图片(此时显示的其实是第一个图片),如果是的,则将ul定位到真正的第一个图片的位置(使用css方法的left进行设置)
  • playPre(): 该函数与playNext移动的方向相反,执行该函数时,使用动画将ul向右偏移一个图片的宽度,动画结束后,将pageIndex减1,同时判断pageIndex是否为第一个图片(此时显示的其实是最后一个图片),如果是的,则将ul定位到真正的最后一个图片的位置
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 轮播的实现原理? 以四个图片的轮播为例html部分:图片存放在ul li标签内,并使用一个div包裹ulcss部分...
    放风筝的小小马阅读 3,746评论 0 0
  • 实现如下轮播效果(渐变轮播)task27-1 一个页面有3个轮播task-27-2 实现如下无限循环滚动轮播效果t...
    JunVincetHuo阅读 4,147评论 0 2
  • 无缝轮播 css需要让图片或者文本水平排列,overflow:hidden隐藏其他图片 整体图片向左/右偏移,就会...
    YM雨蒙阅读 2,463评论 0 0
  • 保险,不是用多余的钱才能买的奢侈品,而是你用持续的小钱铸造的赖以生存和东山再起的地基。 对于买保险,好多人都“不急...
    门闩同学阅读 3,025评论 0 0
  • 「总有一天,我的意中人会骑着七彩云朵来接我」 目标客户定义: 1.有Android/iPhone等相对高级的手机的...
    五清清阅读 9,097评论 2 6