js實現(xiàn)新聞輪播效果
本文實例為大家分享了js實現(xiàn)新聞輪播效果的具體代碼,供大家參考,具體內(nèi)容如下
原生js實現(xiàn)新聞輪播效果,附詳細注釋
<!DOCTYPE html>
<html lang="en">
<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();
? ? ? ? // 把渲染結構的內(nèi)容封裝為一個函數(shù)
? ? ? ? function carousel(){
? ? ? ? ? ? // 定義一個空字符串
? ? ? ? ? ? var str = '';
? ? ? ? ? ? // 遍歷數(shù)組,把數(shù)組里面的每一個值都重復拿出來添加到 li 標簽里再賦值給str
? ? ? ? ? ? news.forEach(function(item){
? ? ? ? ? ? ? ? str +=`<li>${item}</li>`;
? ? ? ? ? ? });
? ? ? ? ? ? // 把 str 的內(nèi)容給到 box 結構里
? ? ? ? ? ? box.innerHTML = str;
? ? ? ? }
? ? ? ? // 點擊添加的時候 把 用戶輸入的內(nèi)容添加到數(shù)組中,再次渲染結構
? ? ? ? btn.onclick = function(){
? ? ? ? ? ? // 為了良好的用戶體驗 輸入框中的值不能為空
? ? ? ? ? ? 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);
? ? ? ? ? ? }
? ? ? ? ? ? // 調用 渲染結構
? ? ? ? ? ? carousel();
? ? ? ? ? ? // 插入新聞完成后輸入框賦空
? ? ? ? ? ? input.value = '';
? ? ? ? }
? ? ? ? /*
? ? ? ? 【1】間隔執(zhí)行函數(shù),每隔多少時間去執(zhí)行一次函數(shù),這里 1000 指的是 1s
? ? ? ? ? ? ? ? setInterval(function(){
? ? ? ? ? ? ? ? ? ? 你需要執(zhí)行的代碼
? ? ? ? ? ? ? ? },1000)
? ? ? ? */
? ? ? ? // 設置定時器 ?新聞的滾動切換(把數(shù)組中的最后一條數(shù)據(jù) 截取出來放入數(shù)組中第一條),再次循環(huán) 渲染結構
? ? ? ? setInterval(function(){
? ? ? ? ? ? // pop() 在刪除數(shù)組的最后一個元素 ?把刪除的數(shù)據(jù)賦值給res
? ? ? ? ? ? var res = news.pop();
? ? ? ? ? ? // unshift() 在數(shù)組的最前面添加一個元素
? ? ? ? ? ? news.unshift(res);
? ? ? ? ? ? // 調用函數(shù),再次渲染結構
? ? ? ? ? ? carousel();
? ? ? ? ? ? // 定時,時長設置為2s
? ? ? ? },2000);
? ? </script>
</body>
</html>效果:
初始:

插入數(shù)據(jù)(因為我們設置了輪播效果,所以新聞會一直滾動):

插入大于5條:

插入只顯示數(shù)組的最新的五條數(shù)據(jù),為什么第一條插入4510202不顯示呢,這是因為可能插入的數(shù)據(jù)類型為整型,在遍歷數(shù)組的時候跑到前面位置所以不顯示

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Webpack常見靜態(tài)資源處理-模塊加載器(Loaders)+ExtractTextPlugin插件
這篇文章主要介紹了Webpack常見靜態(tài)資源處理-模塊加載器(Loaders)+ExtractTextPlugin插件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06
JavaScript?數(shù)據(jù)結構之集合創(chuàng)建(1)
這篇文章主要介紹了JavaScript?數(shù)據(jù)結構之集合創(chuàng)建,集合是由一組無序且唯一的元素組成。數(shù)據(jù)結構中的集合,對應的是數(shù)學概念當中的有限集合;下文詳細介紹需要的小伙伴可以參考一下2022-04-04
javascript iframe中打開文件,并檢測iframe存在否
從iframe中打開文件,并檢測iframe存在否如果說只是檢測頁面存在否,直接設置target用偽協(xié)議就可以解決了...2008-12-12
使用JavaScript解決網(wǎng)頁圖片拉伸問題(推薦)
本文給大家介紹使用javascript解決網(wǎng)頁圖片拉伸問題,本文給大家介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起看看吧2016-11-11
javaScript Array(數(shù)組)相關方法簡述
javaScript Array(數(shù)組)相關方法簡述,讓大家更快的熟悉array數(shù)組的用法。2009-07-07
javascript兩種function的定義介紹及區(qū)別說明
javascript兩種function的定義方式function a(){}和a=function(){}具體使用如下,感興趣的朋友可以參考下,希望對你對你學習function的定義有所幫助2013-05-05

