當前位置:開發者網絡 >> 網頁特效 >> 文本特效 >> 內容
精彩推薦
分類最新特效
分類熱點特效
   
教你用Javascript製作連續滾動的字幕
日期:2004-09-21   人氣:   【字體: 】【收藏此文


<!-- 網頁特效代碼由[中國WEB開發者網絡:http://www.ChinaWebDev.com]提供! -->
<!-- 要實現此效果需要 1 個步驟: -->

<!-- 第 1 步: -->
<!-- 把下面的代碼加到<BODY></BODY>區域中: -->

<div id="marquees"> <!-- 這些是字幕的內容,你可以任意定義 --> <a href="#">鏈接1</a>
<br> <a href="#">鏈接2</a>
<br> <a href="#">鏈接3</a>
<br> <a href="#">鏈接4</a>
<br> <!-- 字幕內容結束 -->
</div>
<!-- 以下是javascript代碼 -->
<script language="javascript">
<!--
marqueesHeight=200; //內容區高度
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>