JavaScript无缝滚动插件

这是一款无缝滚动插件,支持横向和纵向滚动。有需要的尽管拿去哦。

插件的核心用到了cloneNode()

注意事项:

1、只有滚动容器中的内容宽度(高度)超过容器的宽度(高度)时,才可以正常滚动,(个人认为是内容没有超出容器时,是不存在scrollLeft或者scrollTop的,如果不对,希望高人指点) 2、写横向滚动的容器样式时,请不要忘记添加不换行样式,即white-space:nowrap;

直接上代码:

html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文字无缝滚动</title>
    <style>
        div,ul,li{padding:0;margin:0;}
        li{list-style:none;}
        #js_scroll_left{white-space:nowrap;  width:300px; height:30px; line-height:30px; background:#ea4c89; overflow:hidden;}
        #js_scroll_left ul{ display:inline; }
        #js_scroll_left ul li{ display:inline; margin:0 10px; font-size:14px; color:#fff; }

        #js_scroll_top{ width:100px; height:100px; line-height:30px; background:#ffd200; overflow:hidden; padding:10px; margin:50px 0 0;}
        #js_scroll_top ul{  }
        #js_scroll_top ul li{ font-size:14px; color:#262a2d; }
    </style>
</head>
<body>
    <div id="js_scroll_left">
        <ul>
            <li>我是滚动文字!</li>
            <li>我是滚动文字!</li>
            <li>我是滚动文字!</li>
        </ul>
    </div>
    <div id="js_scroll_top">
        <ul>
            <li>我是滚动文字!</li>
            <li>我是滚动文字!</li>
            <li>我是滚动文字!</li>
            <li>我是滚动文字!</li>
        </ul>
    </div>
<script type="text/javascript" src="js/scrollFn.js"></script>
<script type="text/javascript">
    window.onload = function(){
        var scrollObj01 = document.getElementById("js_scroll_left");
        scrollObj01.scrollLeft =
        scroll({
            obj:scrollObj01,
            direction:"left",
            ele:"ul",
            time:50
        });
        var scrollObj02 = document.getElementById("js_scroll_top");
        scroll({
            obj:scrollObj02,
            direction:"top",
            ele:"ul",
            time:50
        });
    }
</script>
</body>
</html>
javascript:


;(function(window){
    function Scroll(cfg){
        this.cfg = cfg||null;
        this.scrollFn();
    }
    Scroll.prototype.scrollFn = function(){
        var cfg = this.cfg;
        var temp = cfg.obj.getElementsByTagName(cfg.ele);
        temp = temp.item(0).cloneNode(true);
        cfg.obj.appendChild(temp);

        function marquee(){
            if(cfg.direction=="left"){
                if(cfg.obj.scrollLeft>=temp.offsetWidth){
                    cfg.obj.scrollLeft-=temp.offsetWidth;
                }else{
                    cfg.obj.scrollLeft++;
                }
            }else if(cfg.direction=="top"){
                if(cfg.obj.scrollTop>=temp.offsetHeight){
                    cfg.obj.scrollTop-=temp.offsetHeight;
                }else{
                    cfg.obj.scrollTop++;
                }
            }
        }
        var timer = setInterval(marquee,cfg.time);
        cfg.obj.onmouseover = function () {
            clearInterval(timer);
        };
        cfg.obj.onmouseout = function(){
            timer = setInterval(marquee,cfg.time);
        }

    }
    window.scroll = function(cfg){
        return new Scroll(cfg);
    }
})(window)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值