JavaScript 垂直新聞公告無縫滾動
本章節分享一段程式碼例項,它實現了新聞列表無縫垂直滾動效果。
這樣的效果通常出現在新聞公告類似的功能模組。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type=text/css> #demo { overflow:hidden; height:132px; width:350px; border:1px solid #dde5bc; } #demo a { width: 100%; overflow: hidden; font: 12px/16px tahoma; display: block; text-decoration: none; margin: 2px; color: #4a551c; padding-left: 2px; text-align: left; } #demo a:hover { color: #ff6600; } </style> <script> window.onload=function(){ var speed = 16 var demo = document.getElementById("demo"); var demo2 = document.getElementById("demo2"); var demo1 = document.getElementById("demo1"); demo2.innerHTML = demo1.innerHTML; function Marquee() { if (demo2.offsetTop - demo.scrollTop <= 0) { demo.scrollTop -= demo1.offsetHeight } else { demo.scrollTop++ } } var MyMar = setInterval(Marquee, speed) demo.onmouseover = function () { clearInterval(MyMar) } demo.onmouseout = function () { MyMar = setInterval(Marquee, speed) } } </script> </head> <body> <div id="demo"> <div id="demo1"> <a href="#">螞蟻部落歡迎您,只有努力才會有美好未來</a> <a href="#">本站的url地址是softwhy.com</a> <a href="#">只有努力奮鬥才會有美好的未來。</a> <a href="#">沒有人一開始就是高手,必須要通過自身努力額</a> <a href="#">每一天都是新的,必須要好好的珍惜。</a> <a href="#">本站的宗旨就是分享前端基礎知識</a> <a href="#">分享和互助式進步最大的原動力</a> <a href="#">要珍惜當下的時間,只有當下才是最現實的</a> <a href="#">對自己有一個清晰的定位要勝過於其他人的任何讚譽</a> <a href="#">前端是一個更新很快的行業</a> <a href="#">es6已經公佈歡迎大家學習</a> <a href="#">css3很快就成為主流了</a> </div> <div id="demo2"></div> </div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).window.onload=function(){},當網頁內容完全載入完畢再去執行函式中的程式碼。
(2).var speed = 40,用來規定定時器函式執行的間隔,其實也就是規定的滾動的速度。
(3).var demo = document.getElementById("demo"),獲取id屬性值為demo的元素物件。
(4).var demo2 = document.getElementById("demo2"),獲取id屬性值為demo2的元素物件。
(5).var demo1 = document.getElementById("demo1"),獲取id屬性值為demo1的元素物件。
(6).demo2.innerHTML = demo1.innerHTML,將demo1元素中的所有內容賦值給demo2。
(7).function Marquee() {},此函式可以實現元素的垂直位移效果。
(8).if (demo2.offsetTop - demo.scrollTop <= 0) ,判斷demo2元素距離body的距離和demo元素向上滾動的距離之差是否小於等於0。其實就是判斷demo1元素是否已經因為向上滾動已經完全隱藏。
(9).demo.scrollTop -= demo1.offsetHeight,重置為最初滾動開始的狀態。
(10).else {
demo.scrollTop++
},否則的話,繼續向上滾動。
(11).var MyMar = setInterval(Marquee, speed),使用定時器函式呼叫Marquee函式。
(12).demo.onmouseover = function () {
clearInterval(MyMar)
},當滑鼠懸浮,停止定時器函式的執行,那麼也就停止滾動了。
(13).demo.onmouseout = function () {
MyMar = setInterval(Marquee, speed)
},當滑鼠離開,繼續滾動效果。
二.相關閱讀:
(1).document.getElementById()方法參閱document.getElementById()一章節。
(2).innerHTML屬性參閱JavaScript innerHTML一章節。
(3).offsetTop參閱JavaScript offsetTop一章節。
(4).scrollTop參閱JavaScript scrollTop一章節。
(5).offsetHeight參閱JavaScript offsetHeight一章節。
(6).setInterval()參閱JavaScript setInterval()一章節。
(7).onmouseover事件參閱JavaScript mouseover事件一章節。
(8).onmouseout事件參閱JavaScript mouseout事件一章節。
(9).clearInterval()參閱JavaScript clearInterval()一章節。
相關文章
- 單行新聞公告間歇垂直無縫滾動
- JavaScript無縫滾動 記錄JavaScript
- jQuery 圖片列表垂直間歇無縫滾動jQuery
- JavaScript水平無縫滾動程式碼JavaScript
- jQuery新聞列表垂直滾動詳解jQuery
- js無縫滾動JS
- 新聞單條無縫間歇向上滾動(第一次分享)
- JavaScript圖片橫向無縫滾動詳解JavaScript
- CSS水平無縫滾動效果CSS
- js-字幕無縫滾動JS
- jQuery 間歇的無縫滾動jQuery
- jQuery圖片無縫滾動效果jQuery
- react無縫滾動輪播圖React
- 向上無縫滾動--原理及思想
- CSS實現迴圈無縫滾動CSS
- JQuery實現圖片輪播無縫滾動jQuery
- 直播系統原始碼,vue實現無縫滾動原始碼Vue
- vue無縫滾動的外掛開發填坑分享Vue
- js、jQuery實現文字上下無縫輪播、滾動效果JSjQuery
- H5移動端獲獎無縫滾動動畫實現H5動畫
- 邏輯難理解版本的輪播圖(實現無縫滾動)
- 怎樣用原生js配合css的transition寫個無縫滾動JSCSS
- HTMl 中marquee標籤實現無縫滾動跑馬燈效果HTML
- jQuery單行新聞標題向上滾動詳解jQuery
- 如何開發一款 60fps 的“無縫滾動”外掛
- 如何讓VB6程式碼編輯器垂直滾動條隨滑鼠滾輪滾動
- Flutter 新聞詳情頁二——WebView和列表豎直滾動FlutterWebView
- Android控制之垂直滾動廣告條ViewFLipper解析AndroidView
- Android——仿淘寶頭條垂直滾動廣告Android
- Android TextSwitcher通知公告自動上下滾動且帶點選事件Android事件
- 直播app原始碼開源,Android 滾動的公告欄APP原始碼Android
- 報表中怎樣實現滾動的公告效果
- 新《公告》
- JavaScript滑鼠中鍵滾動事件JavaScript事件
- Vue 無限滾動元件Vue元件
- CSS3熱身實戰–過渡與動畫(實現炫酷下拉,手風琴,無縫滾動)CSSS3動畫
- JavaScript 滾動條定位指定位置JavaScript
- JavaScript自定義滾動條詳解JavaScript
- 走近Fusion元件——無限滾動元件