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
- 單行新聞公告間歇垂直無縫滾動
- 新聞公告具有時間間隔垂直滾動程式碼
- JavaScript無縫滾動 記錄JavaScript
- jQuery 圖片列表垂直間歇無縫滾動jQuery
- jQuery新聞列表垂直滾動詳解jQuery
- JavaScript水平無縫滾動程式碼JavaScript
- jquery實現的垂直或者水平無縫滾動外掛jQuery
- js無縫滾動JS
- 新聞單條無縫間歇向上滾動(第一次分享)
- JavaScript圖片橫向無縫滾動詳解JavaScript
- CSS 水平無縫滾動CSS
- 無縫迴圈滾動
- css實現新聞公告上下翻滾效果CSS
- 具有間歇效果的新聞列表垂直滾動程式碼
- js-字幕無縫滾動JS
- CSS水平無縫滾動效果CSS
- vue.js無縫滾動Vue.js
- 原生javascript實現的水平圖片無縫滾動效果JavaScript
- 向上無縫滾動--原理及思想
- jQuery 間歇的無縫滾動jQuery
- react無縫滾動輪播圖React
- jQuery圖片無縫滾動效果jQuery
- 原生javascript實現的圖片無縫滾動程式碼分析JavaScript
- CSS實現迴圈無縫滾動CSS
- css3水平無縫滾動效果CSSS3
- JS圖片滾動(無縫、平滑、上下左右滾動)效果JS
- JQuery實現圖片輪播無縫滾動jQuery
- C#資訊無縫滾動顯示程式碼C#
- 直播系統原始碼,vue實現無縫滾動原始碼Vue
- js文字橫向無縫滾動程式碼例項JS
- javascript無限迴圈滾動JavaScript
- vue無縫滾動的外掛開發填坑分享Vue
- js程式碼實現的圖片水平無縫滾動JS
- js、jQuery實現文字上下無縫輪播、滾動效果JSjQuery
- H5移動端獲獎無縫滾動動畫實現H5動畫
- 不斷向上滾動的公告欄
- 文字垂直迴圈滾動效果