asfman
android developer
posts - 90,  comments - 213,  trackbacks - 0
<script type="text/javascript">
<!--
function Tab(callback, active, interval, direction, auto){
   this.active = active||null;
   this.list = [];
   this.timer = 0;
   this.interval = interval || 2000;
   this.direction = direction || "right";
   this.auto = auto || false;
   this.callback = callback;
}
function addEvent(o, type, fn)
{
    var func = function(o){
           return function()
           {
                return fn.apply(o, arguments);
           }
     }(o);
    if(o.attachEvent)
    {
        o.attachEvent("on" + type, func);
    }
    else if(o.addEventListener)
    {
        o.addEventListener(type, func, false);
    }else{
        o["on" + type] = func;
    }
    return func;
}
Tab.prototype.push = function(elem, type){
    type = type || "click";
    this.list.push(elem);
    var _this = this;
    addEvent(elem, type, this.attachEvent.call(this));
}
Tab.prototype.attachEvent = function(){
      var _this = this;
      return function(){
           _this.stop();
            if(_this.active == this) return false;
            for(var i = 0, l = _this.list.length; i < l; i++){
                if(this == _this.list[i]){
                     _this.execute(this);
                     break;
                }
            }
            return false;
        }
}
Tab.prototype.execute = function(elem){
   this.callback(elem, this.active);
   this.active = elem;
}
Tab.prototype.autorun = function(){
      if(this.timer) clearInterval(this.timer);
      var _this = this;
      this.active = this.active || this.list[0];
      this.timer = setInterval(function(){
           for(var i = 0, l =  _this.list.length; i < l; i++){
                 if(_this.active == _this.list[i]){
                      if(_this.direction == "right"){
                         if(i == l-1)
                            _this.execute(_this.list[0], _this.callback);
                        else
                         _this.execute(_this.list[i+1], _this.callback);
                         break;
                      }else{
                        if(i == 0)
                            _this.execute(_this.list[l], _this.callback);
                        else
                            _this.execute(_this.list[i-1], _this.callback);
                        break;
                      }
                 }
           }
      }, this.interval);
}
Tab.prototype.stop = function(){
   if(this.timer) clearInterval(this.timer);
}
var oLis = document.getElementsByTagName("a");
var o = new Tab(callback, oLis[0],500);
function callback (elem, active){
   elem.className = "active";
   if(active) active.className = "";
}
for(var i = 0, l =  oLis.length; i < l; i++){
   o.push(oLis[i]);
}
o.autorun(500);

//-->
</script>
posted on 2009-02-27 11:07 汪杰 阅读(203) 评论(0)  编辑 收藏 引用 所属分类: javascript
只有注册用户登录后才能发表评论。

<2008年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(15)

随笔分类(1)

随笔档案(90)

文章分类(727)

文章档案(712)

相册

收藏夹

http://blog.csdn.net/prodigynonsense

友情链接

最新随笔

搜索

  •  

积分与排名

  • 积分 - 467499
  • 排名 - 6

最新随笔

最新评论

阅读排行榜

评论排行榜