代碼如下:
<div id="marquees"> <!-- 這些是字幕的內容,你可以任意定義 --> <a href="#">連結1</a><br /><br> <a href="#">連結2</a><br /><br> <a href="#">連結3</a><br /><br> <a href="#">連結4</a><br /><br> <!-- 字幕內容結束 --><br /></div><br /><!-- 以下是javascript代碼 --><br /><script language="javascript"><br /><!--<br />marqueesHeight=200; //內容區高度<br />stopscroll=false; //這個變數控制是否停止滾動<br />with(marquees){<br />noWrap=true; //這句表內容區不自動換行<br />style.width=0; //於是我們可以將它的寬度設為0,因為它會被撐大<br />style.height=marqueesHeight;<br />style.overflowY="hidden"; //捲軸不可見<br />onmouseover=new Function("stopscroll=true"); //滑鼠經過,停止滾動<br />onmouseout=new Function("stopscroll=false"); //滑鼠離開,開始滾動<br />}<br />//這時候,內容區的高度是無法讀取了。下面輸出一個不可見的層"templayer",稍後將內容複寫到裡面:<br />document.write('<div id="templayer" style="position:absolute;z-index:1;visibility:hidden"></div>');<br />function init(){ //初始化滾動內容<br />//多次複製原內容到"templayer",直到"templayer"的高度大於內容區高度:<br />while(templayer.offsetHeight<marqueesHeight){<br />templayer.innerHTML+=marquees.innerHTML;<br />} //把"templayer"的內容的“兩倍”複製回原內容區:<br />marquees.innerHTML=templayer.innerHTML+templayer.innerHTML;<br />//設定連續逾時,調用"scrollUp()"函數驅動捲軸:<br />setInterval("scrollUp()",20);<br />}<br />document.body.onload=init;<br />preTop=0; //這個變數用於判斷捲軸是否已經到了盡頭<br />function scrollUp(){ //捲軸的驅動函數<br />if(stopscroll==true) return; //如果變數"stopscroll"為真,則停止滾動<br />preTop=marquees.scrollTop; //記錄滾動前的捲軸位置<br />marquees.scrollTop+=1; //捲軸向下移動一個像素<br />//如果捲軸不動了,則向上滾動到和當前畫面一樣的位置<br />//當然不僅如此,同樣還要向下滾動一個像素(+1):<br />if(preTop==marquees.scrollTop){<br />marquees.scrollTop=templayer.offsetHeight-marqueesHeight+1;<br />}<br />}<br />--><br /></script>
[Ctrl+A 全選 提示:你可先修改部分代碼,再點運行代碼]
轉自: http://goaler.xicp.net/Article/ShowArticle.asp?ID=197