在網路上找了一個跑馬燈的範例,結果發現在FireFox下無法正常運作,不果發現只要刪除<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">就可以正常運作了,另外一個方法是將Script中的marqueeBox更改為document.getElementById('marqueeBox')也可以喔!
例如:
if(marqueeBox.childNodes.length==1) {
var nextLine=document.createElement('DIV');
nextLine.innerHTML=str;
marqueeBox.appendChild(nextLine);
}
改成
if(document.getElementById('marqueeBox').childNodes.length==1) {
var nextLine=document.createElement('DIV');
nextLine.innerHTML=str;
document.getElementById('marqueeBox').appendChild(nextLine);
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
<style>
*{font-size:12px;}
</style>
</head>
<body>
<script>
function reinitMarquee() {//刷新最新列表
js_scroll_content.src='scroll_content2.js';
marqueeContent=marqueeContent.random();
var str='';
for(var i=0;i<Math.min(6,marqueeContent.length);i++) str+=(i>0 && i%3==0)?'<br>'+marqueeContent[i]:' '+marqueeContent[i];
marqueeBox.childNodes[(marqueeBox.childNodes.length==1?0:1)].innerHTML=str;
marqueeId=6;
}
var marqueeContent=new Array(); //定义一个数组,用来存放显示内容
marqueeContent[0]='<A href="#" onclick="reinitMarquee()">1-刷新最新列表</FONT></A>';
marqueeContent[1]='<a href=http://111cn.cn/updatelist.asp target=_blank>2-站点最新更新六十条</a>';
marqueeContent[2]='<A href=http://111cn.cn/tech/graph/2003/875.asp target=_blank>3-羽毛效果制作教程</a>';
marqueeContent[3]='<A href=http://111cn.cn/tech/program/2003/831.asp target=_blank>4-MySQL&ASP</a>';
marqueeContent[4]='<A href=http://111cn.cn/tech/web/2003/874.asp target=_blank>5-初步了解CSS3</a>';
marqueeContent[5]='<A href=http://111cn.cn/tech/graph/2003/864.asp target=_blank>6-Fireworks MX 2004执行面版操作</a>';
var marqueeInterval=new Array(); //定义一些常用而且要经常用到的变量
var marqueeId=0;
var marqueeDelay=4000;
var marqueeHeight=32; //滚动高度
//接下来的是定义一些要使用到的函数
/*
Array.prototype.random=function() {
var a=this;
var l=a.length;
for(var i=0;i<l;i++) {
var r=Math.floor(Math.random()*(l-i));
a=a.slice(0,r).concat(a.slice(r+1)).concat(a[r]);
}
return a;
}
*/
function initMarquee() {
// marqueeContent=marqueeContent.random();
var str='';
for(var i=0;i<Math.min(6,marqueeContent.length);i++) str+=(i>0 && i%3==0)?'<br>'+marqueeContent[i]:' '+marqueeContent[i];
document.write('<div id=marqueeBox style="overflow:hidden;height:'+marqueeHeight+'px" onmouseover="clearInterval(marqueeInterval[0])" onmouseout="marqueeInterval[0]=setInterval(\'startMarquee()\',marqueeDelay)"><div>'+str+'</div></div>');
marqueeId+=6;
if(marqueeContent.length>6)marqueeInterval[0]=setInterval("startMarquee()",marqueeDelay);
}
function startMarquee() {
var str='';
for(var i=0;(i<6)&&(marqueeId+i<marqueeContent.length);i++) {
str+=(i>0 && i%3==0)?'<br>'+marqueeContent[i+marqueeId]:' '+marqueeContent[i+marqueeId];
}
marqueeId+=6;/////
if(marqueeId>marqueeContent.length)marqueeId=0;
if(document.getElementById('marqueeBox').childNodes.length==1) {
var nextLine=document.createElement('DIV');
nextLine.innerHTML=str;
document.getElementById('marqueeBox').appendChild(nextLine);
}
else {///////////////////////alert(marqueeBox.childNodes[0].innerHTML)
// marqueeBox.childNodes[0].innerHTML=str;
document.getElementById('marqueeBox').appendChild(document.getElementById('marqueeBox').childNodes[0]);//////////cl
document.getElementById('marqueeBox').scrollTop=0;
}
clearInterval(marqueeInterval[1]);
marqueeInterval[1]=setInterval("scrollMarquee()",20);
}
function scrollMarquee() {
marqueeBox.scrollTop++;
if(document.getElementById('marqueeBox').scrollTop%marqueeHeight==(marqueeHeight-1)){
clearInterval(marqueeInterval[1]);
document.getElementById('marqueeBox').scrollTop++;
}
}
initMarquee();
</script>
</body>
</html>