×

一起来玩玩基于JS的无缝滚动通用动画效果

作者:Terry2018.09.27来源:Web前端之家浏览:13396评论:0

500.jpg

无缝滚动动画,很常用,看到很多童鞋都喜欢用插件,其实做一个简单的项目,就没那个必要了,今天就分享一种比较简单通用的方法,实现无缝滚动通用动画效果。

不管是多行还是单行,都可以适用哟,看下效果图:

图片.png

效果:从下往上无缝滚动,废话不多说,直接上代码:

单行:

 <div class="prize-databox">
    <ul>
        <li>
            <span class="pr-num">180****2223</span>
            <span>获得了</span>
            <span class="pr-color">300 + 1000元京东E卡</span>
        </li>
    </ul>
</div>

多行:

 <div class="prize-databox">
    <ul>
        <li>
            <span class="pr-num">180****2223</span>
            <span>获得了</span>
            <span class="pr-color">300 + 1000元京东E卡</span>
        </li>
        <li>
            <span class="pr-num">139****2545</span>
            <span>获得了</span>
            <span class="pr-color">300 + 1000元京东E卡</span>
        </li>
    </ul>
</div>

最重要的是JS代码,适用单行和多行的滚动,如下:

//无缝滚动
function scrollNews(obj){
    var $self = obj.find("ul:first");
    var lineHeight = $self.find("li:first").height();  
    $self.animate({ "margin-top" : -lineHeight +"px" },600 , function(){
            $self.css({"margin-top":"0px"}).find("li:first").appendTo($self);
    })
}

$(function(){
    // scroll
    var $this = $(".prize-databox"),       
        scrollTimer;
    $this.hover(function(){
            clearInterval(scrollTimer);
        },function(){
        scrollTimer = setInterval(function(){
                        scrollNews($this);
                },3000 );
    }).trigger("mouseout");
})

接下来我们只要控制prize-databox的高度,比如一行的话,就写一行的高度哟;多行的话,就控制一个框架BOX的高度即可。

有些童鞋就要问了,你这是一行行的滚动啊,我想两行或者多行一起,怎么实现?

其实原理一样,如果是静态的数据,你可以把几行绑定成一个LI里就可以了,最简单的方法;如果是动态的数据,你可以改下上面函数这里的参数"margin-top" : -lineHeight +"px"。就是这么便捷。

您的支持是我们创作的动力!
温馨提示:本文作者系Terry ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
https://jiangweishan.com/article/gundong20180927.html

网友评论文明上网理性发言 已有0人参与

发表评论: