軟件是一系列按照特定順序組織的計(jì)算機(jī)數(shù)據(jù)和指令的集合。一般來(lái)講軟件被劃分為編程語(yǔ)言、系統(tǒng)軟件、應(yīng)用軟件和介于這兩者之間的中間件。硬件是“計(jì)算機(jī)硬件”的簡(jiǎn)稱。與“軟件”相對(duì),電子計(jì)算機(jī)系統(tǒng)中所有實(shí)體部件和設(shè)備的統(tǒng)稱。 如果需要制作連續(xù)滾動(dòng)字幕就要用到跑馬燈的功能,而這樣的功能在很多地方都能用得到,并且我們一般都用Marquee標(biāo)簽控制元素的滾動(dòng)。但是單向的Marquee滾動(dòng)是不連續(xù)的,每滾完一幕,就會(huì)出現(xiàn)一次空白。而下面介紹中的滾動(dòng)則是連續(xù)的,毫不間斷。
下面小陽(yáng)為你介紹這是如何實(shí)現(xiàn)的。 為了滾動(dòng)能夠“連續(xù)”,我們需要將字幕的內(nèi)容復(fù)制多遍,直到內(nèi)容的高度不小于滾動(dòng)區(qū)高度的兩倍。然后我們將溢出的滾動(dòng)條隱藏掉,用代碼控制滾動(dòng)條向下移動(dòng)(這時(shí)內(nèi)容將向上移動(dòng))。當(dāng)滾動(dòng)條滾動(dòng)到最下方時(shí),理論上不能再往下滾動(dòng)了,于是我們立刻調(diào)整滾動(dòng)條,將它向上滾動(dòng)到一個(gè)和當(dāng)前畫面一樣的位置。結(jié)果我們看到的就是連續(xù)的滾動(dòng)了。呵呵,說(shuō)的就是這么簡(jiǎn)單,那做起來(lái)如何呢?我們看看是如何逐步實(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; //這個(gè)變量控制是否停止?jié)L動(dòng) with(marquees){ noWrap=true; //這句表內(nèi)容區(qū)不自動(dòng)換行 style.width=0; //于是我們可以將它的寬度設(shè)為0,因?yàn)樗鼤?huì)被撐大 style.height=marqueesHeight; style.overflowY=“hidden”; //滾動(dòng)條不可見 onmouseover=new Function(“stopscroll=true”); //鼠標(biāo)經(jīng)過,停止?jié)L動(dòng) onmouseout=new Function(“stopscroll=false”); //鼠標(biāo)離開,開始滾動(dòng) } //這時(shí)候,內(nèi)容區(qū)的高度是無(wú)法讀取了。下面輸出一個(gè)不可見的層“templayer”,稍后將內(nèi)容復(fù)制到里面: document.write(‘<div id=“templayer” style=“position:absolute;z-index:1;visibility:hidden”》</div》’); function init(){ //初始化滾動(dòng)內(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ù)超時(shí),調(diào)用“scrollUp()”函數(shù)驅(qū)動(dòng)滾動(dòng)條: setInterval(“scrollUp()”,10); } document.body.onload=init; preTop=0; //這個(gè)變量用于判斷滾動(dòng)條是否已經(jīng)到了盡頭 function scrollUp(){ //滾動(dòng)條的驅(qū)動(dòng)函數(shù) if(stopscroll==true) return; //如果變量“stopscroll”為真,則停止?jié)L動(dòng) preTop=marquees.scrollTop; //記錄滾動(dòng)前的滾動(dòng)條位置 marquees.scrollTop+=1; //滾動(dòng)條向下移動(dòng)一個(gè)像素 //如果滾動(dòng)條不動(dòng)了,則向上滾動(dòng)到和當(dāng)前畫面一樣的位置 //當(dāng)然不僅如此,同樣還要向下滾動(dòng)一個(gè)像素(+1): if(preTop==marquees.scrollTop){ marquees.scrollTop=templayer.offsetHeight-marqueesHeight+1; } } --》 </script》 這樣就完成了,感覺做起來(lái)也不難吧。 硬件是實(shí)在的,有模有樣的。軟件是程序性的。是一系列的指令。有了軟件,硬件才會(huì)實(shí)現(xiàn)更豐富的功能。 |
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!