JS 实现自定义滚动效果

版权声明:JiahaoZhang原创文章,转载请注明出处 https://blog.csdn.net/GrootBaby/article/details/84959589
var timer = null;
//获得当前滚动盒子scrollBox
var ulList = $(".scroll ul.scrollBox");
//获得当前scrollBox里面滚动元素的个数
var ulNum = $(".scroll ul.scrollBox").children("li").length;
if (ulNum > 2) {
    timer = setInterval(function() {
        scrollList(ulList);
    }, 4000);
    //鼠标经过清空定时器
    ulList.hover(function() {
        clearInterval(timer);
    }).mouseleave(function(){
        timer = setInterval(function() {
            scrollList(ulList);
        }, 4000);
    })
}
//滚动动画
function scrollList(obj) {
    //获得当前<li>的边距大小
    var scrollMargin= parseInt($("ul.scrollBox li:first-child").css('marginRight'));
    //获得当前<li>的高度
    var scrollHeight = $("ul.scrollBox li:first").width() + scrollMargin; 
    //滚动出一个<li>的高度+边距
    obj.stop().animate({
        marginLeft: -(scrollHeight+scrollMargin)
    }, 2000,
    function() {
        //动画结束后,将当前<ul>margin置为初始值0状态,再将第一个<li>拼接到末尾。
        obj.css({
            marginLeft: 0
        }).find("li:first").appendTo(obj);
    });
}

猜你喜欢

转载自blog.csdn.net/GrootBaby/article/details/84959589