在網路上找了一個跑馬燈的範例,結果發現在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>

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Gino 的頭像
    Gino

    Gino的筆記本

    Gino 發表在 痞客邦 留言(0) 人氣()