JS实现Li列表的无缝垂直文字滚动代码

  非Table模式的新闻列表滚动,学习CSS的朋友可能都能做出这种效果来。运用了CSS中的Li列表标签,加上javaScript代码控制,完成完美的无缝滚动效果。在兼容性方面,在ie6,7,8,9,firefox等主流浏览器下均测试通过,用的时候您只需改变一下样式和大小,再将Js封装起来,用时候调用,就更简洁了,相信这款实用的文字滚动正是你需要的。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>JS实现Li列表的无缝垂直文字滚动代码丨石家庄非标门|石家庄不锈钢隔断</title>
    <style type="text/css">
    *{padding:0; margin:0;}
    #roll{ border:1px solid red;height:100px; margin:10px auto; width:350px; overflow:hidden;list-style:none;}
    #roll li{height:30px; padding-left:10px;line-height:30px; border-bottom:1px solid #ddd;}
    a{font-size:12px; text-decoration:none; font-family:‘宋体‘;}
    </style>
    </head>
    <body>
    <ol id="roll">
    <li>
    <a title="超级漂亮的几款清新、常用的网页CSS布局配色实例" target="_blank"">
    超级漂亮的几款清新、常用的网页CSS布局配色实例</a></li>
    <li>
    <a title="CSS制作斜角上有背景图片的Div层" target="_blank"">
    CSS制作斜角上有背景图片的Div层</a></li>
    <li>
    <a title="Js实现的层展开、层折叠效果,默认时候层是折叠的" target="_blank" href="http://www.hbjbz.net/">
    Js实现的层展开、层折叠效果,默认时候层是折叠的</a></li>
    <li>
    <a title="DIV始终固定在网页右下角位置的CSS实现方法" target="_blank" href="http://www.kayajixie.com/">
    DIV始终固定在网页右下角位置的CSS实现方法</a></li>
    <li>
    <a title="JavaScript未知高度元素的垂直居中的方法" target="_blank" href="www.hongshan1998.com.cn/">
    JavaScript未知高度元素的垂直居中的方法</a></li>
    <li>
    <a title="渐变彩色的文字" target="_blank"">
    渐变彩色的文字</a></li>
    <li>
    <a title="指定文字逐条显示" target="_blank"">
    指定文字逐条显示</a></li>
    <li>
    <a title="滚动的标题栏" target="_blank" href="">
    滚动的标题栏</a></li>
    <li>
    <a title="JS 4屏平滑滚动幻灯片特效" target="_blank"">
    JS 4屏平滑滚动幻灯片特效</a></li>
    <li>
    <a title="图片的无缝滚动(纵向、横向)" target="_blank"">
    图片的无缝滚动(纵向、横向)</a></li>
    <li>
    <a title="鼠标触及带边框的菜单" target="_blank"">
    鼠标触及带边框的菜单</a></li>
    <li>
    <a title="比较实用的CSS控制链接颜色效果" target="_blank"">
    比较实用的CSS控制链接颜色效果</a></li>
    </ol>
    <div id="bug"></div>
    </body>
    <script type="text/javascript">
    (function(A){
    function _ROLL(obj){
    this.ele = document.getElementById(obj);
    this.interval = false;
    this.currentNode = 0;
    this.passNode = 0;
    this.speed = 100;
    this.childs = _childs(this.ele);
    this.childHeight = parseInt(_style(this.childs[0])[height]);
    addEvent(this.ele,mouseover,function(){
    window._loveYR.pause();
    });
    addEvent(this.ele,mouseout,function(){
    window._loveYR.start(_loveYR.speed);
    });
    }
    function _style(obj){
    return obj.currentStyle || document.defaultView.getComputedStyle(obj,null);
    }
    function _childs(obj){
    var childs = [];
    for(var i=0;i<obj.childNodes.length;i++){
    var _this = obj.childNodes[i];
    if(_this.nodeType===1){
    childs.push(_this);
    }
    }
    return childs;
    }
    function addEvent(elem,evt,func){
    if(-[1,]){
    elem.addEventListener(evt,func,false);
    }else{
    elem.attachEvent(on+evt,func);
    };
    }
    function innerest(elem){
    var c = elem;
    while(c.childNodes.item(0).nodeType==1){
    c = c.childNodes.item(0);
    }
    return c;
    }
    _ROLL.prototype = {
    start:function(s){
    var _this = this;
    _this.speed = s || 100;
    _this.interval = setInterval(function(){
    _this.ele.scrollTop += 1;
    _this.passNode++;
    if(_this.passNode%_this.childHeight==0){
    var o = _this.childs[_this.currentNode] || _this.childs[0];
    _this.currentNode<(_this.childs.length-1)?_this.currentNode++:_this.currentNode=0;
    _this.passNode = 0;
    _this.ele.scrollTop = 0;
    _this.ele.appendChild(o);
    }
    },_this.speed);
    },
    pause:function(){
    var _this = this;
    clearInterval(_this.interval);
    }
    }
    A.marqueen = function(obj){A._loveYR = new _ROLL(obj); return A._loveYR;}
    })(window);
    marqueen(roll).start(100/*速度默认100*/);
    </script>
    </html>
  

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。