火狐marquee_firefox 2 marquee兼容

新作的项目里面有个页面用到了标签结果,在firefox下面就是不工作。无奈写了一段代码,用来替代简单的marquee功能:

/*

* parameter: el -- marquee element

*

* html structure:

*

*

*

*/

Marquee = function(el){

el.parentNode.style.overflow = "hidden";

el.parentNode.style.position = "relative";

var tab = el.getElementsByTagName("table")[0];

el.parentNode.appendChild(tab);

el.parentNode.removeChild(el);

el = tab;

el.style.position = "absolute";

el.style.left = "0px";

pfun = this;

this.pauseflag = false;

el.onmouseover = function(){pfun.pause()};

el.onmouseout = function(){pfun.resume()};

this.direction = -1;

this.timer = window.setInterval(function(){

if(!pfun.pauseflag){

var left = parseInt(el.style.left);

/*

* table 里总共有10张图片一字排开,

* 长度770px,这里使用540px,

* 原因是考虑到最后3幅图片不能全部飞过,

* 否则会有一段间隙显示空白

*/

if(left < 0 && left <= -540){

pfun.direction = 1

}else if(left >= 0){

pfun.direction = -1;

}

el.style.left = (left + (5*pfun.direction))+"px";

}

}, 200);

}

Marquee.prototype = {

pause : function(){

this.pauseflag = true;

},

resume : function(){

this.pauseflag = false;

}

}

/*

* check is firefox 2.x

*/

if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){

var ffversion=new Number(RegExp.$1) // capture x.x portion and store as a number

if (ffversion>=2 && ffversion <= 3){

var els = document.getElementsByTagName("marquee");

for(var i = 0 ; i < els.length; i++)

new Marquee(els[i]);

}

}

HTML代码:

...

分享到:

2008-10-31 16:40

浏览 4432

评论

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值