当前位置:首页 > 网页特效 > 文字特效 >

Discuz论坛的JavaScript有停顿的走马灯公告效果

时间:2014-06-08 00:09 来源:互联网 作者:源码搜藏 收藏 推荐

运行代码 保存代码 复制代码 提示:您可以先修改部分代码再运行,保存代码功能在Firefox下无效。
Discuz论坛的JavaScript走马灯公告效果
  • 从Discuz论坛里挖出来的JavaScript走马灯特效,中间会停顿,代码兼容IE,FF,Opera,Safari,Chrome等多浏览器,点击“运行”查看效果。
  • <script type="text/javascript">
    function $(element){
     if(arguments.length>1){
      for(var i=0,length=arguments.length,elements=[];i<length;i++){
       elements.push($(arguments[i]));
      }
      return elements;
     }
     if(typeof element=="string"){
      return document.getElementById(element);
     }else{
      return element;
     }
    }
    var Class={
     create:function(){
      return function(){
       this.initialize.apply(this,arguments);
      }
     }
    }
    Function.prototype.bind=function(object){
     var method=this;
     return function(){
      method.apply(object,arguments);
     }
    }
    var Scroll=Class.create();
    Scroll.prototype={
     initialize:function(element,height){
      this.element=$(element);
      this.element.innerHTML+=this.element.innerHTML;
      this.height=height;
      this.maxHeight=this.element.scrollHeight/2;
      this.counter=0;
      this.scroll();
      this.timer="";
      this.element.onmouseover=this.stop.bind(this);
      this.element.onmouseout=function(){this.timer=setTimeout(this.scroll.bind(this),1000);}.bind(this);
     },
     scroll:function(){
      if(this.element.scrollTop<this.maxHeight){
       this.element.scrollTop++;
       this.counter++;
      }else{
       this.element.scrollTop=0;
       this.counter=0;
      }
      
      if(this.counter<this.height){
       this.timer=setTimeout(this.scroll.bind(this),22);
      }else{
       this.counter=0;
       this.timer=setTimeout(this.scroll.bind(this),3126);
      }
     },
     stop:function(){
      clearTimeout(this.timer);
     }
    }
    var myscroll=new Scroll("myscroll",26);
    </script>
由源码搜藏网整理,转载请注明出处https://www.codesocang.com/tx-wenzi/8546.html

文字特效下载排行

最新文章