新聞中心
我們一般都用Marquee標(biāo)簽控制元素的滾動。但是單向的Marquee滾動是不連續(xù)的,每滾完一幕,就會出現(xiàn)一次空白。而下面介紹中的滾動則是連續(xù)的,毫不間斷。

10年積累的成都網(wǎng)站制作、網(wǎng)站設(shè)計、外貿(mào)網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有崇仁免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
推薦專題:JavaScript網(wǎng)頁開發(fā)指南
下面小陽為你介紹這是如何實現(xiàn)的。
為了滾動能夠“連續(xù)”,我們需要將字幕的內(nèi)容復(fù)制多遍,直到內(nèi)容的高度不小于滾動區(qū)高度的兩倍。然后我們將溢出的滾動條隱藏掉,用代碼控制滾動條向下移動(這時內(nèi)容將向上移動)。當(dāng)滾動條滾動到最下方時,理論上不能再往下滾動了,于是我們立刻調(diào)整滾動條,將它向上滾動到一個和當(dāng)前畫面一樣的位置。結(jié)果我們看到的就是連續(xù)的滾動了。呵呵,說的就是這么簡單,那做起來如何呢?我們看看是如何逐步實現(xiàn)的。
- <div id="marquees"> <!-- 這些是字幕的內(nèi)容,你可以任意定義 --> <a href="#">鏈接一</a>
- <br> <a href="#">鏈接二</a>
- <br> <a href="#">鏈接三</a>
- <br> <a href="#">鏈接四</a>
- <br> <!-- 字幕內(nèi)容結(jié)束 -->
- </div>
- <!-- 以下是java-script代碼 -->
- <script language="java-script">
- <!--
- marqueesHeight=200; //內(nèi)容區(qū)高度
- stopscroll=false; //這個變量控制是否停止?jié)L動
- with(marquees){
- noWrap=true; //這句表內(nèi)容區(qū)不自動換行
- style.width=0; //于是我們可以將它的寬度設(shè)為0,因為它會被撐大
- style.height=marqueesHeight;
- style.overflowY="hidden"; //滾動條不可見
- onmouseover=new Function("stopscroll=true"); //鼠標(biāo)經(jīng)過,停止?jié)L動
- onmouseout=new Function("stopscroll=false"); //鼠標(biāo)離開,開始滾動
- }
- //這時候,內(nèi)容區(qū)的高度是無法讀取了。下面輸出一個不可見的層"templayer",稍后將內(nèi)容復(fù)制到里面:
- document.write('<div id="templayer"
- style="position:absolute;z-index:1;visibility:hidden"></div>');
- function init(){ //初始化滾動內(nèi)容
- //多次復(fù)制原內(nèi)容到"templayer",直到"templayer"的高度大于內(nèi)容區(qū)高度:
- while(templayer.offsetHeight<marqueesHeight){
- templayer.innerHTML+=marquees.innerHTML;
- } //把"templayer"的內(nèi)容的“兩倍”復(fù)制回原內(nèi)容區(qū):
- marquees.innerHTML=templayer.innerHTML+templayer.innerHTML;
- //設(shè)置連續(xù)超時,調(diào)用"scrollUp()"函數(shù)驅(qū)動滾動條:
- setInterval("scrollUp()",10);
- }
- document.body.onload=init;
- preTop=0; //這個變量用于判斷滾動條是否已經(jīng)到了盡頭
- function scrollUp(){ //滾動條的驅(qū)動函數(shù)
- if(stopscroll==true) return; //如果變量"stopscroll"為真,則停止?jié)L動
- preTop=marquees.scrollTop; //記錄滾動前的滾動條位置
- marquees.scrollTop+=1; //滾動條向下移動一個像素
- //如果滾動條不動了,則向上滾動到和當(dāng)前畫面一樣的位置
- //當(dāng)然不僅如此,同樣還要向下滾動一個像素(+1):
- if(preTop==marquees.scrollTop){
- marquees.scrollTop=templayer.offsetHeight-marqueesHeight+1;
- }
- }
- -->
- </script>
這樣就完成了,感覺做起來也不難吧。
網(wǎng)站標(biāo)題:用JavaScript制作連續(xù)滾動字幕
文章網(wǎng)址:http://www.5511xx.com/article/djdsigc.html


咨詢
建站咨詢
