轮播VS渐变轮播

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

1.固定包裹图片的父容器的宽度,overflow :hidden属性规定当内容溢出元素框时隐藏
2.多张图片浮动,排成一排,设置,通过改变left值,实现偏移
3.方法
pre():上一页就是一排图片向右移动,left增加
next():下一页就是一排图片向左移动,left减小
4.定义全局属性$curIndex,记录当前显示图片的index.
判断第一张和最后一张的偏移
5.下图和代码结合看:理解最后一张和第一张怎么衔接流畅

衔接不卡顿原理图
//以下一页为例,下一页就是一排图片向左移动,left减小
//当点击最后一页,几乎同时完成两个动作,一是偏移一个图片宽度,二是把包裹图片容器的left设置为下一张克隆图片原来的left的值,这样就是一个循环,而且看不出图片突然移动.
 function next(idx){
            $imgCt.animate({
                left: "-="+idx*$imgWidth//点击下一页,偏移一个图片宽度
            },function(){
                $curIndex += idx;
                if($curIndex >= $imgLen){                 
                    $imgCt.css({left: -$imgWidth});
                    $curIndex = 0;
                }
                $imgLock = true;
                setBullet()
            })
        }
function pre(idx){
            $imgCt.animate({
                left:'+='+$imgWidth//图片右移,left增加
            },function(){
                $curIndex = curIndex - idx;//0 - 1
                if($curIndex <0){//在第一张时点击上一张
                    $imgCt.css({left:-$imgLen*$imgWidth});//迅速左移图片
                }
            })
        }

2.实现左右滚动无限循环轮播效果

代码

偏移原理:利用包裹图片的容器left值即:$imgCt.css('left'),偏移距离总是图片宽度的整数倍的数字作为索引.

3. 实现一个渐变轮播效果

代码

原理: setInterval();clearInterval();fadeIn;fadeOut;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,764评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,237评论 4 61
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 有时很羡慕那些在外兼职的大学生。兼职不仅可以挣到零花钱,还可以丰富社会阅历,增长见识。 我只是很羡慕,很向往,却从...
    繁星一梦阅读 2,812评论 1 0
  • 我不知道在哪里寻找答案 一次次思念 唤起内心的波澜 我不知道在哪里寻找答案 她像个幽灵 于心间不停盘旋 我不知道在...
    sularyu阅读 1,664评论 0 2