国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

淺析js 文字滾動效果

2024-05-06 14:09:52
字體:
來源:轉載
供稿:網友
這種效果在今后的web發展中是不是常用或者是否依然被設計師們所青睞,從技術層面看并不是最重要的,了解它的實現原理,對自身前端技術的提高,會有很大的幫助,世間萬物,萬變不離其宗,掌握了它的運行規律,你才不會被其花花外表所迷惑,甚至你可以在掌握其規律的前提下,運行相關技術,創造出新的效果來。下面看看它的實現過程:
1.html
代碼如下:
<div class="box" id="marqueebox0">
<ul>
<li style="background:#f8e2ac;">第一行</li>
<li style="background:#f5f5f5;">第二行</li>
<li style="background:#ffe6ec;">第三行</li>
</ul>
</div>

2.css
代碼如下:
.box{
width:150px;
height:25px;
line-height:25px;
border:#bbb 1px solid;
overflow:hidden;
}
.box ul{margin:0; padding:0}
.box li{
height:25px;
line-height:25px;
font-size:12px;
text-align:center;
list-style-type:none;
}

3.js
代碼如下:
function startmarquee(lh,speed,delay,index){
/*
函數startmarquee的參數:
lh:文字一次向上滾動的距離或高度;
speed:滾動速度;
delay:滾動停頓的時間間隔;
index:可以使封裝后的函數應用于頁面當中不同的元素;
*/
var t;
var p=false;
var o=document.getElementById("marqueebox"+index);
//獲取文檔中的滾動區域對象,賦值給變量o;
o.innerHTML+=o.innerHTML; //對象中的實際內容被復制了一份,包含了兩個ul,當然li標簽也
由原來的3行,變為6行;復制的目的在于給文字不間斷向上滾動提供過渡。
o.onmouseover=function(){p=true}
//鼠標滑過,停止滾動;
o.onmouseout=function(){p=false}
//鼠標離開,開始滾動;p是true還是false直接影響到下面start()函數的執行;
o.scrollTop = 0;
//文字內容頂端與滾動區域頂端的距離,初始值為0;
function start(){
t=setInterval(scrolling,speed); //每隔一段時間,setInterval便會執行一次
scrolling函數;speed越大,滾動時間間隔越大,滾動速度越慢;
if(!p){ o.scrollTop += 1;}
//滾動停止或開始,取決于p傳來的布爾值;
}
function scrolling(){
if(o.scrollTop%lh!=0){
//如果不被整除,即一次上移的高度達不到lh,則內容會繼續往上滾動;
o.scrollTop += 1;
if(o.scrollTop>=o.scrollHeight/2) o.scrollTop = 0;
//對象o中的內容之前被復制了一次,所以它的滾動高度,其實是原來內容的兩倍高度;
當內容向上滾動到scrollHeight/2的高度時,全部3行文字已經顯示了一遍,至此整塊內容
scrollTop歸0;再等待下一輪的滾動,從而達到文字不間斷向上滾動的效果;
}else{
clearInterval(t);
//否則清除t,暫停滾動
setTimeout(start,delay);
//經過delay間隔后,啟動start() 再連續滾動
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 肇庆市| 濮阳市| 朝阳县| 汽车| 班玛县| 灵寿县| 汪清县| 霍林郭勒市| 仪陇县| 兴国县| 惠州市| 阜南县| 徐闻县| 玛多县| 安丘市| 西昌市| 且末县| 北碚区| 密山市| 韩城市| 伊金霍洛旗| 宁河县| 汝州市| 汉沽区| 古浪县| 宣恩县| 丹寨县| 同仁县| 纳雍县| 佛学| 嘉义市| 车险| 海丰县| 秭归县| 故城县| 桂东县| 安岳县| 循化| 沂源县| 平邑县| 类乌齐县|