zoukankan      html  css  js  c++  java
  • 手写无缝轮播banner

    <div class="banner">
            <ul class="clearfloat bannerul xin" id="xin">
                <!-- <li><img src="img/nbaner.png" /></li>
                <li><img src="img/nbaner.png" /></li>
                <li><img src="img/nbaner.png" /></li>
                <li><img src="img/nbaner.png" /></li> -->
            </ul>
            <ul class="num clearfloat">
                <li class="active"></li>
                <li></li>
                <li></li>
                <li></li>
            </ul>
            <div>
                <!-- <button class="ll" type="button">Click Me l!</button>
                    <button class="rr" type="button">Click Me r!</button> -->
                <!-- <span class="left-btn-l">
                        <img src="images/lef1.png" width="26" class="ll">
                    </span>
                    <span class="right-btn-r">
                        <img src="images/rig1.png" width="26" class="rr">
                    </span> -->
            </div>
        </div>
    Page.prototype.banner = function (data) {
                var that = this;
                var banners = $('.banner');
                var bannerul = $('.bannerul');
                var bannerulli = $('.bannerul li')
                var widths = banners.width();
                var lengths = bannerulli.length;
                var sid = null;
                var index = 0;
                bannerulli.width(widths)
                var bgc = []
                for (var i = 0; i < data.length; i++) {
                    var tt = {};
                    tt.background = data[i].background;
                    bgc.push(tt);
                }
                banners.css(bgc[0]);
                function play() {
                    index++;
                    if (index == lengths) {
                        index = 0;
                        banners.css(bgc[index]);
                    }
                    banners.css(bgc[index]);
                    core(index);
                }
                sid = setInterval(play, 5000);
                banners.hover(function () {
                    clearInterval(sid)
                }, function () {
                    sid = setInterval(play,  5000);
                });
    
                $(".num li").on('click', function () {
                    index = $(this).index();
                    banners.css(bgc[index]);
                    core(index);
                });
    
                function core(index) {
                    
                    $('.bannerul').append($('.bannerul li').eq(0).clone());//copy第一张添加在最后
                    bannerul.stop().animate({
                        'left': -(bannerulli.eq(0).innerWidth())
                    }, 1000,"linear",function(){
                        $('.bannerul li').eq(0).remove();//执行完删除第一个图片
                        bannerul.css({"left":"0px"});//初始化left值
                    });
                    $('.num li').eq(index).addClass('active').siblings().removeClass('active');
                   
                }
            }

    原理参考:https://www.cnblogs.com/zbblog/p/12053666.html 

    思路:不断copy第一张图片添加到最后。同时向左移动一定值。在执行动画结束回调执行remove首张图片。以此作为循环。

  • 相关阅读:
    Java中四个作用域的可见范围
    java构造方法前加void有什么作用
    css3渐变
    日历插件
    三级联动地点
    js返回上一级代码和刷新页面代码
    css3滚动条
    如何写评价“星星”有半个情况的,如3.5,这样写好调数据
    原生态js单个点击展开收缩和jQuery的写法
    推荐大家使用的CSS书写规范、顺序
  • 原文地址:https://www.cnblogs.com/opcec/p/14189236.html
Copyright © 2011-2022 走看看