如何利用JS實(shí)現(xiàn)新聞自動(dòng)輪播效果,現(xiàn)在看看具體代碼:這是原生js實(shí)現(xiàn)新聞輪播效果,且附詳細(xì)注釋
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <input type="text" id="input"> <button id="btn">插入</button> <ul id="box"></ul> <script> // 定義數(shù)組 var news = ['111111111111','2222222222222222222','33333333333333']; // 獲取元素 var input = document.getElementById('input'); var btn = document.getElementById('btn'); var box = document.getElementById('box'); // 把原有的新聞顯示在頁面中 carousel(); // 把渲染結(jié)構(gòu)的內(nèi)容封裝為一個(gè)函數(shù) function carousel(){ // 定義一個(gè)空字符串 var str = ''; // 遍歷數(shù)組,把數(shù)組里面的每一個(gè)值都重復(fù)拿出來添加到 li 標(biāo)簽里再賦值給str news.forEach(function(item){ str +=`<li>${item}</li>`; }); // 把 str 的內(nèi)容給到 box 結(jié)構(gòu)里 box.innerHTML = str; } // 點(diǎn)擊添加的時(shí)候 把 用戶輸入的內(nèi)容添加到數(shù)組中,再次渲染結(jié)構(gòu) btn.onclick = function(){ // 為了良好的用戶體驗(yàn) 輸入框中的值不能為空 if(!input.value){ // 彈出提示框 alert('輸入框不能為空'); // 這里 return 是中斷循環(huán)的意思 return; } // 把內(nèi)容添加到數(shù)組中 news.unshift(input.value); // 頁面中新聞只能為5條,如果超過5條,把5條之后的數(shù)據(jù)刪除 if(news.length>5){ // 只截取頁面最新的5條新聞 news.splice(5); } // 調(diào)用 渲染結(jié)構(gòu) carousel(); // 插入新聞完成后輸入框賦空 input.value = ''; } /* 【1】間隔執(zhí)行函數(shù),每隔多少時(shí)間去執(zhí)行一次函數(shù),這里 1000 指的是 1s setInterval(function(){ 你需要執(zhí)行的代碼 },1000) */ // 設(shè)置定時(shí)器 新聞的滾動(dòng)切換(把數(shù)組中的最后一條數(shù)據(jù) 截取出來放入數(shù)組中第一條),再次循環(huán) 渲染結(jié)構(gòu) setInterval(function(){ // pop() 在刪除數(shù)組的最后一個(gè)元素 把刪除的數(shù)據(jù)賦值給res var res = news.pop(); // unshift() 在數(shù)組的最前面添加一個(gè)元素 news.unshift(res); // 調(diào)用函數(shù),再次渲染結(jié)構(gòu) carousel(); // 定時(shí),時(shí)長設(shè)置為2s },2000); </script> </body> </html>
效果:
初始:
如下圖所示,當(dāng)插入數(shù)據(jù)(因?yàn)槲覀冊O(shè)置了輪播效果,所以新聞會(huì)一直滾動(dòng)):
插入大于5條:
我們看到插入只顯示數(shù)組的最新的五條數(shù)據(jù),后面的為什么會(huì)不顯示那?極有可能是插入的數(shù)據(jù)類型為整型,因?yàn)樵诒闅v數(shù)組的時(shí)候跑到前面位置所以不顯示
以上就是IS實(shí)現(xiàn)新聞輪播的全部內(nèi)容,歡迎大家更多關(guān)注后續(xù)內(nèi)容。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/127797.html
摘要:案例品牌列表構(gòu)建基本結(jié)構(gòu)利用的樣式數(shù)據(jù)要雙向更新,所以要用到,同時(shí)在后面的中要進(jìn)行初始化為添加按鈕綁定事件的中,綁定值為關(guān)鍵字刪除標(biāo)簽綁定函數(shù),傳入?yún)?shù)的時(shí)候,需要用括號事件修飾符,表示阻止默認(rèn)事件實(shí)例對象新建一個(gè)實(shí)例函數(shù)中初始化需要雙向 VUE案例 品牌列表 構(gòu)建基本結(jié)構(gòu) 利用bootstrap的樣式 showImg(https://segmentfault.com/img/bVbf...
寫在前面 當(dāng)大多數(shù)人Vue理解的爐火純青的時(shí)候,你應(yīng)該思考怎么讓vue頁面騷氣起來,下面就我個(gè)人在接觸Vue兩年的時(shí)間里,在實(shí)際工作中門戶網(wǎng)站在前端頁面交互應(yīng)用和技巧,炒幾道小菜給大家分享一哈,我把它封裝成一個(gè)項(xiàng)目vue-portal-webUI(github源碼),不敢說是UI,但也是各種常見常遇到的情景吧,看懂代碼需要一些vue、axios、es6、scss基礎(chǔ)、數(shù)據(jù)基本上是mock,功能和場...
摘要:訂閱事件,在其中做更新數(shù)據(jù)的操作需要特殊注意的是,自定義事件的訂閱和觸發(fā)可以不在同一個(gè)頁面的腳本環(huán)境中完成,只需要保證自定義事件的觸發(fā)在訂閱之后即可。 本節(jié)教程將介紹如何用DeviceOne簡單而高效的完成一個(gè)新聞頁面。 導(dǎo)入項(xiàng)目數(shù)據(jù)模板分離MVVM模型自定義事件展示新聞九宮格展示將要學(xué)習(xí)的demo效果圖如下所示showImg(https://segmentfault.com/img/...
摘要:訂閱事件,在其中做更新數(shù)據(jù)的操作需要特殊注意的是,自定義事件的訂閱和觸發(fā)可以不在同一個(gè)頁面的腳本環(huán)境中完成,只需要保證自定義事件的觸發(fā)在訂閱之后即可。 本節(jié)教程將介紹如何用DeviceOne簡單而高效的完成一個(gè)新聞頁面。 導(dǎo)入項(xiàng)目數(shù)據(jù)模板分離MVVM模型自定義事件展示新聞九宮格展示將要學(xué)習(xí)的demo效果圖如下所示showImg(https://segmentfault.com/img/...
摘要:本人博客正式地址騰訊新聞中心的首頁改版啦,歡迎訪問。這次新聞首頁的改版,是從零開始寫的一個(gè)新頁面。除要聞頁卡外,其他頁卡的新聞均是通過的方式獲取的??偨Y(jié)新頁面上線后,還會(huì)有很多后續(xù)的功能需要添加。 本人博客:http://www.xiabingbao.com 正式地址:http://www.xiabingbao.com/news/2016/05/16/qq-news-revision ...
閱讀 686·2023-03-27 18:33
閱讀 888·2023-03-26 17:27
閱讀 752·2023-03-26 17:14
閱讀 736·2023-03-17 21:13
閱讀 665·2023-03-17 08:28
閱讀 2084·2023-02-27 22:32
閱讀 1518·2023-02-27 22:27
閱讀 2431·2023-01-20 08:28