日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Java写字幕滚动,使用JavaScript实现连续滚动字幕效果的方法

發(fā)布時間:2023/12/14 javascript 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java写字幕滚动,使用JavaScript实现连续滚动字幕效果的方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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

下面為你介紹這是如何實(shí)現(xiàn)的。

為了滾動能夠“連續(xù)”,我們需要將字幕的內(nèi)容復(fù)制多遍,直到內(nèi)容的高度不小于滾動區(qū)高度的兩倍。然后我們將溢出的滾動條隱藏掉,用代碼控制滾動條向下移動(這時內(nèi)容將向上移動)。當(dāng)滾動條滾動到最下方時,理論上不能再往下滾動了,于是我們立刻調(diào)整滾動條,將它向上滾動到一個和當(dāng)前畫面一樣的位置。結(jié)果我們看到的就是連續(xù)的滾動了。呵呵,說的就是這么簡單,那做起來如何呢?我們看看是如何逐步實(shí)現(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,因?yàn)樗鼤粨未?/p>

style.height=marqueesHeight;

style.overflowY="hidden"; //滾動條不可見

οnmοuseοver=new Function("stopscroll=true"); //鼠標(biāo)經(jīng)過,停止?jié)L動

οnmοuseοut=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.οnlοad=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>

這樣就完成了,感覺做起來也不難吧。

總結(jié)

以上是生活随笔為你收集整理的Java写字幕滚动,使用JavaScript实现连续滚动字幕效果的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。