js轮播的实现

<div class="school-list-ul">
            <ul class="js-repeat-comment-wrap" style="margin-top: -817.100677988105px;"><!-- 116*3 -->
                    <li class="">
                        <img width="64" height="64" src="/res/img/index/face/116.jpg" data-img-set="1" data-src="/res/img/index/face/116.jpg" class="js-item-img">
                        <p class="text">11111</p>
                        <p class="name">11同学 111</p>
                    </li>                                        
                    <li class="">
                        <img width="64" height="64" src="/res/img/index/face/116.jpg" data-img-set="1" data-src="/res/img/index/face/116.jpg" class="js-item-img">
                        <p class="text">11111</p>
                        <p class="name">11同学 111</p>
                    </li>
                   <li class="">
                        <img width="64" height="64" src="/res/img/index/face/116.jpg" data-img-set="1" data-src="/res/img/index/face/116.jpg" class="js-item-img">
                        <p class="text">11111</p>
                        <p class="name">11同学 111</p>
                    </li>


                    <li class="">
                        <img width="64" height="64" src="/res/img/index/face/116.jpg" data-img-set="1" data-src="/res/img/index/face/116.jpg" class="js-item-img">
                        <p class="text">11111</p>
                        <p class="name">11同学 111</p>
                    </li>                                        
                    <li class="">
                        <img width="64" height="64" src="/res/img/index/face/116.jpg" data-img-set="1" data-src="/res/img/index/face/116.jpg" class="js-item-img">
                        <p class="text">11111</p>
                        <p class="name">11同学 111</p>
                    </li>
                   <li class="">
                        <img width="64" height="64" src="/res/img/index/face/116.jpg" data-img-set="1" data-src="/res/img/index/face/116.jpg" class="js-item-img">
                        <p class="text">11111</p>
                        <p class="name">11同学 111</p>
                    </li>
          </ul>
 </div>




<!--div固定高度,当ul的高度大于div则可以满足类似轮播的效果的条件,为了实现全部li项的轮播,这里li的项的个数是实际的两倍-->


//js文件:
//轮播评论(文字),含图像的处理
var renderCommenList = function (item-height,item-length) {
    var wrap_node = $(".js-repeat-comment-wrap"),
        img_node = wrap_node.find(".js-item-img"),       //图像的
        empty_img = null,
        total_size = wrap_node.find("li").length,          //轮播的项的个数
        real_size = total_size / 2,                        //实际的页面的展示需要的li的个数
        move_top = 1 * item-height,                                //每个轮播项(li)的高度
        half_size = -(real_size - 1) * move_top,           
        cur_magin_top = 0,                                 //当前的ul与div的marginTop值
        cur_size = 0;                                      //当前的li偏移项的个数


    if (total_size > 0) {
        var comment_timer_function = function () {
            cur_magin_top = parseInt(wrap_node.css("marginTop").replace("px", ""), 10);


            if (cur_magin_top < half_size) {
                wrap_node.css("marginTop", "0px");                 //重置ul与div之间的间距为0
                cur_size = 0;                                        //充值当前ul偏移div的个数为0
            } else {
                //懒惰加载图片
                empty_img = img_node.eq(cur_size + item-length);    //item-length为div固定区域块中可显示的子项<li>的个数,这里为3项
                if (empty_img.data('img-set') != 1) {
                    empty_img.attr('src', empty_img.data('src'));
                    empty_img.data('img-set', 1);                 //data-img-set=1用于标记当前的img已经加载
                }
                wrap_node.animate({                                //执行一个滚动动画
                    marginTop: '-' + cur_size * move_top + 'px'     //轮播偏移的子项的个数 * 每个轮播项高度
                }, 1500);
                cur_size++;
            }
        };
        setInterval(function () {
            comment_timer_function();
        }, 4000);
        comment_timer_function(); // runs it immediately
    }
}


var item-height = 117px,        //假设每个轮播项的高度为117px
    item-length = 3;            //item-length为固定容器内可显示的子项的个数
renderComentList(item-height,item-length);



 

效果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值