美文网首页
轮播实现

轮播实现

作者: hui_mamba | 来源:发表于2017-07-24 00:13 被阅读0次

轮播的实现原理是怎样的?如果让你来实现,你会抽象出哪些函数(or接口)供使用?

在实现轮播之前首先要确定要实现什么样的轮播:

  • 对于无限滚动轮播:
    将图片排成一行,并将一个供轮播的窗口固定大小,隐藏超出范围的图片,并在第一张图片前添加复制的最后一张图片,在最后一张图片后添加复制的第一张图片,当触发点击下一张图片的事件时,根据方向移动图片位置来滚动显示图片,滚动到最后一张图片或第一张图片时,再次滚动要跳转到第一张的图片或最后一张图片的位置。
  • 对于无限渐进渐出的轮播:
    所有的图片都叠放在一起,开始时统一设置display:none,然后通过fadeout当前页,fadeIn需要展示的图片。

其次,需要考虑一些细节问题:

  • bullets与图片滚动的同步问题。
  • 若需要在快速点击时,判断轮播是否处于动画中,就要利用jQuery中的is(':animated')或者引入isAnimated变量动态判断。
  • 若对于快速点击,需要轮播同时响应用户的点击,并且不让用户等的太久,可以利用jQuery中的stop()函数。例如:
    $node.stop(true).animate()
    这样可以取消当前的动画队列,从而快速到达用户想要的位置。
  • 自动播放问题,是否添加自动播放,当用户鼠标放在轮播上时,取消自动播放,提高用户体验。(注意使用setTimeout()来模拟setInterval()
  • 对于轮播图片比较多,可以考虑通过懒加载的方式来节省流量,提高用户体验。

完成一个轮播是,必要的一些函数接口和变量:

  • 变量:
  • idx(0): 始终跟随当前显示图片的索引。
  • imgCount: 图片的数量。
  • isAnimated(false): 当前是否处于动画中。
  • 函数:
  • autoPlay() 和 stopAuto()
  • play(num) 这是最稳重要的轮播函数,num可以是目标idx与当前所在idx的差值,可正可负,为正时,向前滚动num个,为负时,向后滚动num个。在这其中,要注意idx的变化与计算(特别是当idx处于最大和最小时),可以利用:
    idx = (idx + num + imgCount) % imgCount (视具体情况而定)
  • setBullet() 函数,在play()中被调用。用来同步bullets(下方小点)的变化。

一些轮播实例

1
1
1
11
1
11
1
11
1

相关文章

  • 任务27 - jquery实战 - 轮播

    代码 实现如下轮播效果 展示、代码 实现上述轮播效果,在一个页面有三个轮播 展示、代码 实现如下无限循环滚动轮播效...

  • swift轮播图的实现-UIScrollView

    目标 :UIScrollView+三UIImageView的轮播图实现 原理:利用UIScrollView实现轮播...

  • 轮播图心得

    轮播图 写轮播图之前我们要认识到几个问题:一、什么是轮播图?二、怎么实现轮播效果?三、轮播图还有什么小功能可以实现...

  • 轮播

    轮播: UIScrollview轮播UICollectionView轮播 实现步骤: (1)添加并设置定时器(2)...

  • swiper实现自动轮播的问题,不能跳转到第一个slide的解决

    ionic+swiper实现自动轮播在实现自动轮播的时候,请求回来的图片数据不能正常轮播,在每次轮播的时候总是会跳...

  • Swift实现轮播图以及自定义UIPageControl

    无限轮播的实现思路 轮播图最核心的部分是如何实现无限轮播。我的实现方式是: 在UIScrollView上添加三个U...

  • 关于轮播的思路(使用clone 移动宽度)

    实现如下轮播效果(渐变轮播)task27-1 一个页面有3个轮播task-27-2 实现如下无限循环滚动轮播效果t...

  • iOS高效图片轮播 - 两个imageView实现

    iOS高效图片轮播 - 两个imageView实现 iOS高效图片轮播 - 两个imageView实现

  • 轮播图实现

    轮播图在实际应用开发使用较多,本文说明一下具体的实现过程。 一、实现轮播图的基本控件介绍。实现轮播图需要将多张图片...

  • 项目-轮播图

    整个轮播图分为三部分:轮播指标、轮播项目及轮播导航。用boostrap实现轮播图要比用js、jQuery方便的多,...

网友评论

      本文标题:轮播实现

      本文链接:https://www.haomeiwen.com/subject/pdeukxtx.html