zoukankan      html  css  js  c++  java
  • 【JS篇】控制子集超过一定数量开始轮播

    【JS篇】控制子集超过一定数量开始轮播,

    这个是很早的时候的一个效果了,经过代码的不断迭代升级修改,现在是最封装的一版本,通过面向对象传参数,适用于任何一个需要放置 数量达到一定条件后可执行的函数

    // 团队成员大于6个人的时候滚动
            jQuery(document).ready(function () {
                var box0 = jQuery("#itemsd"), v0 = 1.5; //这里添加滚动的对象和其速率
                Rin(box0, v0);
    
                function Rin(jQueryBox, v) {//$Box移动的对象,v对象移动的速率
                    var jQueryBox_ul = jQueryBox.find("ul"),
                        jQueryBox_li = jQueryBox_ul.find("li"),
                        jQueryBox_li_span = jQueryBox_li.find("span"),
                        left = 0,
                        s = 0,
                        timer;//定时器
    
                    jQueryBox_li.each(function (index) {
                        jQuery(jQueryBox_li_span[index]).width(jQuery(this).width());//hover
                        s += jQuery(this).outerWidth(true); //即要滚动的长度
                    })
    
                    window.requestAnimationFrame = window.requestAnimationFrame || function (Tmove) { return setTimeout(Tmove, 1000 / 60) };
                    window.cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout;
    
                    if (s >= jQueryBox.width()) {//如果滚动长度超出Box长度即开始滚动,没有的话就不执行滚动
                        jQueryBox_li.clone(true).appendTo(jQueryBox_ul);
                        Tmove();
                        function Tmove() {
                            //运动是移动left  从0到-s;(个人习惯往左滚)
                            left -= v;
                            if (left <= -s) { left = 0; jQueryBox_ul.css("left", left) } else { jQueryBox_ul.css("left", left) }
                            timer = requestAnimationFrame(Tmove);
                        }
                        jQueryBox_ul.hover(function () { cancelAnimationFrame(timer) }, function () { Tmove() })
                    }
    
                }
                //团队成果大于两个时显示
                if (jQuery("#teamover>li").length > 2) {
                    jQuery(".domainmore").eq(0).show();
                    $("#teamover>li").filter(":lt(2)").show().end().filter().hide();
                        } else {
                            jQuery(".domainmore").eq(0).hide();
                        }
                    })
                    jQuery("#domore").click(function () {
                        $("#teamover>li").show();
                        jQuery(".domainmore").eq(0).hide();
    
    
            })

    其中的轮播条件可根据实际情况,我给出的是宽度达到限定,也可以换成子集的数量达到限定后进行无缝滚动,
    团队列表大于两个时显示 是用来处理显示更多与隐藏的按钮, 在数量未达条件时正常显示, 达到后显示【点击加载更多】的按钮, 点击后该按钮隐藏,显示所有团队列表。适用于任何场景,如果觉得方法还可再做优化的,欢迎道友指点交流。
  • 相关阅读:
    android中接口和抽象类的区别
    最靠谱的禁止ViewPager滑动方法
    Android Studio 自定义属性,命名空间
    代码设置Android EditText的相关问题。输入长度maxLength
    关于Android中,保留小数点后两位的方式
    Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等
    既然安卓免费,那 Google 是靠什么赚钱的?
    android viewconfiguration
    Android中实现为TextView添加多个可点击的文本
    Textview解析带图片的html示例
  • 原文地址:https://www.cnblogs.com/yizhiduxiublog/p/12119614.html
Copyright © 2011-2022 走看看