<table> <tr> <td> <div id="marquees"> <!-- 這些是字幕的內容,你可以任意定義 --> <table width=500 > <tr> <td> <a href="#">早在年初本人就開始構思建立個人主頁</a> </td> </tr> <tr> <td> <a href="#">到今天為止,本站共上傳了近200個頁面。(9.1)</a> </td> </tr> <tr> <td> <a href="#">FLASH選修課案例完工,DW選修課案例可望在10、1前搞定。(9、9) </a> </td> </tr> </table> </div> </td> </tr> </table> <!-- 以下是javascript代碼 --> <script language="javascript"> <!-- marqueesHeight=80; //內容區高度 stopscroll=false; //這個變量控制是否停止滾動 with(marquees){ noWrap=true; //這句表內容區不自動換行 style.width=0; //於是我們可以將它的寬度設為0,因為它會被撐大 style.height=marqueesHeight; style.overflowY="hidden"; //滾動條不可見 onmouseover=new Function("stopscroll=true"); //鼠標經過,停止滾動 onmouseout=new Function("stopscroll=false"); //鼠標離開,開始滾動 } //這時候,內容區的高度是無法讀取了。下面輸出一個不可見的層"templayer",稍后將內容復制到里面: document.write('<div id="templayer" style="position:absolute;z-index:1;visibility:hidden"></div>'); function init(){ //初始化滾動內容 //多次復制原內容到"templayer",直到"templayer"的高度大於內容區高度: while(templayer.offsetHeight<marqueesHeight){ templayer.innerHTML+=marquees.innerHTML; } //把"templayer"的內容的“兩倍”復制回原內容區: marquees.innerHTML=templayer.innerHTML+templayer.innerHTML; //設置連續超時,調用"scrollUp()"函數驅動滾動條: setInterval("scrollUp()",20); } document.body.onload=init; preTop=0; //這個變量用於判斷滾動條是否已經到了盡頭 function scrollUp(){ //滾動條的驅動函數 if(stopscroll==true) return; //如果變量"stopscroll"為真,則停止滾動 preTop=marquees.scrollTop; //記錄滾動前的滾動條位置 marquees.scrollTop+=1; //滾動條向下移動一個像素 //如果滾動條不動了,則向上滾動到和當前畫面一樣的位置 //當然不僅如此,同樣還要向下滾動一個像素(+1): if(preTop==marquees.scrollTop){ marquees.scrollTop=templayer.offsetHeight-marqueesHeight+1; } } --> </script>