當(dāng)前位置:軟件學(xué)堂 > 資訊首頁(yè) > 網(wǎng)絡(luò)編程 > 編程其他 > JS代碼實(shí)現(xiàn)帶翻頁(yè)效果的公告欄

JS代碼實(shí)現(xiàn)帶翻頁(yè)效果的公告欄

2012/10/18 10:51:46作者:佚名來(lái)源:網(wǎng)絡(luò)

移動(dòng)端

【實(shí)例名稱】

JS代碼實(shí)現(xiàn)帶翻頁(yè)效果的公告欄

【實(shí)例描述】

公告欄通常需要marquee實(shí)現(xiàn)滾動(dòng)效果,有時(shí)候因?yàn)轫?yè)面的排版問(wèn)題,町能需要翻頁(yè)形式的公告欄。本例就學(xué)習(xí)如何實(shí)現(xiàn)這種功能。

【實(shí)例代碼】

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
#divMsg{
line-height:20px;
height:20px;
overflow:hidden;
}
</style>
<script type="text/javascript">
var Scroll = new function(){
    this.delay   = 2000;    //延遲的時(shí)間
    this.height  = 20;      //行的高度
    this.step    = 4;       //步長(zhǎng)
    this.curHeight= 0;
    this.stimer  = null;
    this.timer   = null; 
    this.start   = function(){                  //開(kāi)始翻頁(yè)-調(diào)用move方法
        this.move();
    }
    this.move  = function(){
        var self = this;
        if(this.curHeight == this.height)       //如果顯示完一行
        {
            this.timer = setTimeout(function(){ //使用定時(shí)器-定時(shí)下一行的翻頁(yè)時(shí)間
            self.move();
        }, this.delay);
        this.curHeight = 0;
        if(this.element.scrollTop >= this.element.scrollHeight - this.height){ //滾動(dòng)信息已經(jīng)完畢
        this.element.scrollTop = 0;
        }
        return true;
        }
        this.element.scrollTop += this.step;
        this.curHeight += this.step;
        this.timer = setTimeout(function(){   //設(shè)置自動(dòng)翻頁(yè)定時(shí)器
        self.move();
        }, 30);
    }
    this.stop = function(){        //清除定時(shí)期,停止?jié)L動(dòng)翻頁(yè)
        clearTimeout(this.timer);
    }
}
</script>
</head>
<body>
<div id="divMsg">
    張三奧運(yùn)會(huì)歷史性的突破,拿到了男子100米金牌<br/>
    奧運(yùn)會(huì)歷史上的首位8金得主<br/>
    北京奧運(yùn)會(huì)歡迎志愿者的參與<br/>
    奧運(yùn)會(huì)帶來(lái)了什么樣的商機(jī)<br/>
    北京奧運(yùn)會(huì)2008年舉行<br/>
    娛樂(lè)新聞?wù)堔D(zhuǎn)到娛樂(lè)主頁(yè)<br/>
    今天又獲得一枚金牌<br/>
</div><script type="text/javascript">
Scroll.element = document.getElementById('divMsg');
Scroll.start();
</script>
<input type="button" value="開(kāi)始" onclick="Scroll.start()"/>
<input type="button" value="停止" onclick="Scroll.stop()"/>
</body>
</html>
 
【運(yùn)行效果】

 翻頁(yè)效果

【難點(diǎn)剖析】

本例的重點(diǎn)是顯示信息高度的判斷。代碼中默認(rèn)每行的高度為20,如果當(dāng)前行的高度已經(jīng)超過(guò)20,則調(diào)用定時(shí)器,根據(jù)指定的時(shí)間再顯示下一行的信息。

【源碼下載】

本實(shí)例JS代碼下載

標(biāo)簽: JS代碼  翻頁(yè)效果