原生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(){
//移動步長
var step = (target - obj.offsetLeft) / 10;
//步長取整
step = step > 0? Math.ceil(step):Math.floor(step);
//移動盒子 : 盒子位置 + 步長
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="閑靜似嬌花照水,行動如弱柳扶風(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>
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
JS設(shè)置網(wǎng)頁圖片vspace和hspace屬性的方法
這篇文章主要介紹了JS設(shè)置網(wǎng)頁圖片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)語音輸入功能;第二種方法: 用span模擬,定位span,借助JS鍵盤事件判斷輸入,確定span里的內(nèi)容顯示隱藏2013-03-03
js獲取時(shí)間并實(shí)現(xiàn)字符串和時(shí)間戳之間的轉(zhuǎn)換
這篇文章主要介紹了js獲取時(shí)間并實(shí)現(xiàn)字符串和時(shí)間戳之間的轉(zhuǎn)換,需要的朋友可以參考下2015-01-01
JS 組件系列之BootstrapTable的treegrid功能
這篇文章主要介紹了JS 組件系列之BootstrapTable的treegrid功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-06-06
javascript 支持ie和firefox杰奇翻頁函數(shù)
杰奇小說系統(tǒng)用到的翻頁函數(shù),支持firefox,官方自帶的模板不支持,這樣大家就可以用firefox瀏覽網(wǎng)頁了,在網(wǎng)頁木馬橫行的今天,firefox比ie要安全不少2008-07-07
簡單聊聊JavaScript的事件循環(huán)機(jī)制
前端開發(fā)的童鞋應(yīng)該都知道,JavaScript是一門單線程的腳本語言,這就意味著JavaScript 代碼在執(zhí)行的時(shí)候,只有一個(gè)主線程來執(zhí)行所有的任務(wù),同一個(gè)時(shí)間只能做同一件事情,這篇文章主要給大家介紹了關(guān)于JavaScript事件循環(huán)機(jī)制的相關(guān)資料,需要的朋友可以參考下2022-03-03
JavaScript 動態(tài)三角函數(shù)實(shí)例詳解
本文通過實(shí)例代碼給大家實(shí)例講解了javascript動態(tài)三角函數(shù)知識,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2017-01-01
webpack4實(shí)現(xiàn)不同的導(dǎo)出類型
這篇文章主要介紹了webpack4實(shí)現(xiàn)不同的導(dǎo)出類型,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04

