新聞公告具有時間間隔垂直滾動程式碼
一般企業網站都有公告功能模組,有些公告新聞是橫向的,有的是垂直的,本章節就通過一個例項介紹一下如何實現具有時間間隔的垂直滾動程式碼,程式碼如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>新聞公告具有時間間隔垂直滾動程式碼-螞蟻部落</title> <style type="text/css"> *{ margin:0; padding:0; } li { list-style:none; } #callboard { width:600px; margin:100px auto 0; height:24px; line-height:24px; overflow:hidden; font-size:12px; background-color:#f5f5f5; } #callboard ul { padding:0; } #callboard li { padding:0; } </style> <script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script> <script type="text/javascript"> $(document).ready(function(){ (function (win){ var callboarTimer; var callboard=$('#callboard'); var callboardUl=callboard.find('ul'); var callboardLi=callboard.find('li'); var liLen=callboard.find('li').length; var initHeight=callboardLi.first().outerHeight(true); win.autoAnimation=function(){ if(liLen<=1) { return; } var self=arguments.callee; var callboardLiFirst=callboard.find('li').first(); callboardLiFirst.animate({ marginTop:-initHeight }, 500, function (){ clearTimeout(callboarTimer); callboardLiFirst.appendTo(callboardUl).css({marginTop:0}); callboarTimer = setTimeout(self, 5000); }) } callboard.mouseenter( function (){ clearTimeout(callboarTimer); }).mouseleave(function (){ callboarTimer = setTimeout(win.autoAnimation, 5000); }) }(window)); setTimeout(window.autoAnimation, 5000); }) </script> </head> <body> <div id="callboard"> <ul> <li> <span style="color:red;">螞蟻部落歡迎您</span> </li> <li> <span style="color:red;">每一天都是新的,請珍惜</span> </li> <li style="margin-top: 0px;">只有奮鬥才會有美好的明天</li> </ul> </div> </body> </html>
以上程式碼實現了我們想要的效果,下面就介紹一下它的實現過程。
一.實現原理:
autoAnimation通過animate調整ul元素中第一個li元素的margintop屬性值,調整的大小剛好是第一個li元素的高度,這樣第一個li元素就會向上滾動逐漸被隱藏,第二個li元素也會逐漸被顯示,然後再將第一個元素挪動到ul元素內部的最後面,通過setTimeout方法每5秒遞迴呼叫一次autoAnimation,這樣不斷的重複就實現滾動效果。
二.程式碼註釋:
(1).$(document).ready(function(){}),文件結構完全載入完畢再去執行函式中的程式碼。
(2).(function(win){})(window),建立並執行一個函式,引數為window物件。
(3).var callboarTimer,宣告一個變數,用於儲存setTimeout()函式的返回值。
(4).var callboard=$('#callboard'),獲取id屬性值為callboard'的物件。
(5).var callboardUl=callboard.find('ul'),獲取callboard下的所有ul物件集合。
(6).var callboardLi=callboard.find('li'),獲取callboard下的所有li物件集合。
(7).var liLen=callboard.find('li').length,獲取li元素的數量。
(8).var initHeight=callboardLi.first().outerHeight(true),獲取第一個li元素的高度,外邊距計算在內。
(9).win.autoAnimation=function(){},此函式用來實現向上滾動效果。
(10).if(liLen<=1){return;},如果li元素的個數小於等於1,那就不用滾動了。
(11).var self=arguments.callee,將當前函式物件的引用賦值給self變數。
(12).var callboardLiFirst=callboard.find('li').first(),獲取第一個li元素。
(13). callboardLiFirst.animate({}),在500毫秒內調整margintop屬性值,這樣第一個li就會被隱藏,第二個li就會被顯示出來,在margin-top調整完畢之後,將第一個li元素位置放置於ul元素的內部的最後面,最後5秒之後再呼叫autoAnimation函式,以此往復迴圈,這樣就是先了不斷的滾動效果。
(14).callboard.mouseenter(function(){clearTimeout(callboarTimer); }),註冊mouseenter事件處理函式,滑鼠放在div上滾動停止。
(15).mouseleave(function (){ callboarTimer=setTimeout(win.autoAnimation, 5000); }) ,註冊mouseleave事件處理函式,當滑鼠離開時,繼續開始滾動。
(16). setTimeout(window.autoAnimation,5000); 5秒後呼叫autoAnimation函式。
三.相關閱讀:
(1).find()參閱jQuery find()方法一章節。
(2).outerHeight()參閱jQuery outerHeight()方法一章節。
(3).first()參閱jQuery first()方法一章節。
(4).clearTimeout()參閱clearTimeout()方法一章節。
(5).appendTo()參閱jQuery appendTo()方法一章節。
(6).css()參閱jQuery css()方法一章節。
(7).setTimeout()參閱setTimeout()方法一章節。
相關文章
- 具有間歇效果的新聞列表垂直滾動程式碼
- 單行新聞公告間歇垂直無縫滾動
- JavaScript 垂直新聞公告無縫滾動JavaScript
- JavaScript垂直新聞公告無縫滾動詳解JavaScript
- jQuery新聞列表垂直滾動詳解jQuery
- 如何實現新聞標題和釋出時間之間用虛線間隔
- jQuery實現的但行文字具有時間間隔向上滾動效果jQuery
- js計算兩個時間點時間間隔的程式碼例項JS
- jQuery具有暫停功效果新聞列表向上滾動jQuery
- css實現新聞公告上下翻滾效果CSS
- jQuery 圖片列表垂直間歇無縫滾動jQuery
- jQuey網站公告水平滾動程式碼網站
- 公告文字水平滾動例項程式碼
- Js+CSS間斷和不間斷文字滾動程式碼JSCSS
- 新聞單條無縫間歇向上滾動(第一次分享)
- job 執行時間比排程間隔時間長
- CSS 帶有時間日期的新聞列表CSS
- oracle時間間隔轉換函式Oracle函式
- 頁面全屏垂直平滑滾動程式碼例項
- PHP求時間間隔n天、周、月、年後的時間PHP
- MySQL 為日期增加一個時間間隔MySql
- oracle對於時間間隔的處理Oracle
- 數字轉時間間隔格式處理
- Android 具有左右滑動功能的時間軸Android
- 如何讓VB6程式碼編輯器垂直滾動條隨滑鼠滾輪滾動
- 時間小人程式碼
- js實現的文字垂直滾動例項程式碼JS
- jQuery列表上下垂直滾動效果程式碼例項jQuery
- xp系統寬頻怎麼手動設定重播時間間隔
- javascript如何計算兩個日期之間的時間間隔JavaScript
- 如何計算兩個時間間隔的天數
- 利用TRUNC函式定製JOB的時間間隔函式
- 手動處理DataGuard間隔
- Linux 檢視程式啟動時間、執行時間Linux
- 【AWR】調整AWR資料取樣時間間隔及歷史快照保留時間
- 將時間戳轉換為時間例項程式碼時間戳
- UTC格式時間轉換為當地時間程式碼
- 簡單的圖片間隔指定時間切換效果