原生JS實(shí)現(xiàn)幻燈片
效果如下:
代碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <style type = "text/css"> *{ padding: 0; margin: 0; } li { list-style: none; } .box { width: 800px; height: 450px; margin: 50px auto; position: relative; overflow:hidden; } .box span { width: 40px; height: 60px; display: block; position: absolute; top: 225px; margin-top: -20px; cursor: pointer; z-index: 1; } .box #left { width: 76px; height: 112px; background: url('http://www.w2bc.com/upload/201609/20/jiaoben4524/images/buttons.png') no-repeat left 0; left: 0; margin-top: -66px; display: none; } .box #right { width: 76px; height: 112px; background: url('http://www.w2bc.com/upload/201609/20/jiaoben4524/images/buttons.png') no-repeat right 0; right: 0; margin-top: -66px; display: none; } .box #txt { width: 100%; height: 30px; background-color: #000; opacity: 0.4; position: absolute; bottom: 0; color: #fff; line-height: 30px; text-align: center; } #ad { width: 4000px; height: 450px; position: absolute; left: -1600px; } #ad li { float: left; } .box #left:hover { background: url('http://www.w2bc.com/upload/201609/20/jiaoben4524/images/buttons.png') no-repeat left -112px; } .box #right:hover { background: url('http://www.w2bc.com/upload/201609/20/jiaoben4524/images/buttons.png') no-repeat right -112px; } </style> <script type = "text/javascript"> window.onload = function(){ function $(id){ return document.getElementById(id);} var aLi = $("ad").children; function animate(obj,target,arrt){ //關(guān)閉上一個(gè)定時(shí)器 clearInterval(obj.timer); $("txt").innerHTML = obj.children[0].children[0].alt; //管理定時(shí)器 obj.timer = setInterval(function(){ //移動(dòng)步長(zhǎng) var step = (target - obj.offsetLeft) / 10; //步長(zhǎng)取整 step = step > 0? Math.ceil(step):Math.floor(step); //移動(dòng)盒子 : 盒子位置 + 步長(zhǎng) obj.style.left = obj.offsetLeft + step+ "px"; //關(guān)閉定時(shí)器 if(obj.offsetLeft%800 ==0){ clearInterval(obj.timer); //判斷點(diǎn)擊的方向 if(arrt === "left"){ var oLi = $("ad").children[aLi.length - 1].cloneNode(true); //添加到最前面 obj.insertBefore(oLi,obj.children[0]); //刪除最后一個(gè)盒子 obj.removeChild(obj.children[aLi.length - 1]); //讓ul恢復(fù)初始值 obj.style.left = "-1600px"; }else{ //克隆第一個(gè)盒子 var oLi = obj.children[0].cloneNode(true); //添加到最后面 obj.appendChild(oLi); //刪除第一個(gè)盒子 obj.removeChild(obj.children[0]); //讓ul恢復(fù)初始值 obj.style.left = "-1600px"; } } },20); } var timer = setInterval(autoplay,2000); function autoplay(){ animate($("ad"),-2400,"right"); } $("ad").parentNode.onmouseover = function(){ clearInterval(timer); $("left").style.display = "block"; $("right").style.display = "block"; } $("ad").parentNode.onmouseout = function(){ $("left").style.display = "none"; $("right").style.display = "none"; timer = setInterval(autoplay,2000); } $("left").onclick = function(){ clearInterval(timer); animate($("ad"),-800,"left"); } $("right").onclick = function(){ clearInterval(timer); animate($("ad"),-2400,"right"); } } </script> </head> <body> <div class="box"> <ul id="ad"> <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/4.jpg" alt="閑靜似嬌花照水,行動(dòng)如弱柳扶風(fēng)。"></li> <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/5.jpg" alt="心較比干多一竅,病如西子勝三分。"></li> <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/1.jpg" alt="兩彎似蹙非蹙籠煙眉,一雙似喜非喜含情目。"></li> <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/2.jpg" alt="態(tài)生兩靨之愁,嬌襲一身之病。"></li> <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/3.jpg" alt="淚光點(diǎn)點(diǎn),嬌喘微微。"></li> </ul> <p id="txt">淚光點(diǎn)點(diǎn),嬌喘微微</p> <span id="left"></span> <span id="right"></span> </div> </body> </html>
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
JS設(shè)置網(wǎng)頁(yè)圖片vspace和hspace屬性的方法
這篇文章主要介紹了JS設(shè)置網(wǎng)頁(yè)圖片vspace和hspace屬性的方法,具體分析了vspace和hspace屬性的功能及javascript修改技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04兩種方法實(shí)現(xiàn)文本框輸入內(nèi)容提示消失
第一種方法:基于HTML5 input標(biāo)簽的新特性 - placeholder 。另外,x-webkit-speech 屬性可以實(shí)現(xiàn)語(yǔ)音輸入功能;第二種方法: 用span模擬,定位span,借助JS鍵盤(pán)事件判斷輸入,確定span里的內(nèi)容顯示隱藏2013-03-03js獲取時(shí)間并實(shí)現(xiàn)字符串和時(shí)間戳之間的轉(zhuǎn)換
這篇文章主要介紹了js獲取時(shí)間并實(shí)現(xiàn)字符串和時(shí)間戳之間的轉(zhuǎn)換,需要的朋友可以參考下2015-01-01JS 組件系列之BootstrapTable的treegrid功能
這篇文章主要介紹了JS 組件系列之BootstrapTable的treegrid功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-06-06javascript 支持ie和firefox杰奇翻頁(yè)函數(shù)
杰奇小說(shuō)系統(tǒng)用到的翻頁(yè)函數(shù),支持firefox,官方自帶的模板不支持,這樣大家就可以用firefox瀏覽網(wǎng)頁(yè)了,在網(wǎng)頁(yè)木馬橫行的今天,firefox比ie要安全不少2008-07-07簡(jiǎn)單聊聊JavaScript的事件循環(huán)機(jī)制
前端開(kāi)發(fā)的童鞋應(yīng)該都知道,JavaScript是一門(mén)單線(xiàn)程的腳本語(yǔ)言,這就意味著JavaScript 代碼在執(zhí)行的時(shí)候,只有一個(gè)主線(xiàn)程來(lái)執(zhí)行所有的任務(wù),同一個(gè)時(shí)間只能做同一件事情,這篇文章主要給大家介紹了關(guān)于JavaScript事件循環(huán)機(jī)制的相關(guān)資料,需要的朋友可以參考下2022-03-03JavaScript 動(dòng)態(tài)三角函數(shù)實(shí)例詳解
本文通過(guò)實(shí)例代碼給大家實(shí)例講解了javascript動(dòng)態(tài)三角函數(shù)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2017-01-01webpack4實(shí)現(xiàn)不同的導(dǎo)出類(lèi)型
這篇文章主要介紹了webpack4實(shí)現(xiàn)不同的導(dǎo)出類(lèi)型,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04