JS實(shí)現(xiàn)淘寶幻燈片效果的實(shí)現(xiàn)方法
實(shí)現(xiàn)思路:
1、for循環(huán)給數(shù)字按鈕加上點(diǎn)擊事件。
2.for循環(huán)先把按鈕的樣式清空,再把當(dāng)前樣式設(shè)置樣式。
3、給每個(gè)按鈕添加自定義屬性index aBtn[i].index=i aBtn[2]=2 第二個(gè)按鈕和第二張圖片想對(duì)應(yīng),用運(yùn)動(dòng)框架把大圖的UL每次移動(dòng)-150px,因?yàn)閳D片高度是150px。如果移動(dòng)到第n張圖片就是-150*n。
4、定義變量now,用來(lái)自動(dòng)播放用的。把當(dāng)前圖片賦值給now now=this.index。
5、定義自動(dòng)播放函數(shù)。now++ 下一張,if判斷,到最后一張圖片的時(shí)候就把now設(shè)置為0,就是第一張。 if(now==aBtn.length)
6、定義定時(shí)器,每2秒就調(diào)用一次自動(dòng)播放函數(shù)。
7、鼠標(biāo)指向圖片時(shí)就清除定時(shí)器。
8、鼠標(biāo)離開(kāi)圖片時(shí)就開(kāi)啟定時(shí)器。
<script>
window.onload=function()
{
var oDiv=document.getElementById('play');
var aBtn=oDiv.getElementsByTagName('ol')[0].getElementsByTagName('li');
var oUl=oDiv.getElementsByTagName('ul')[0];
var now=0;
for(var i=0;i<aBtn.length;i++)
{
aBtn[i].index=i;
aBtn[i].onmouseover=function()
{
now=this.index; //當(dāng)前值賦給now
tab();
}
};
function tab()
{
for(var i=0;i<aBtn.length;i++)
{
aBtn[i].className=''; //把所有按鈕的樣式清空
};
aBtn[now].className='active'; //當(dāng)前按鈕樣式設(shè)置
startMove(oUl,{top:-150*now}); //用運(yùn)動(dòng)框架把UL的TOP設(shè)置為當(dāng)前個(gè)數(shù)*-150,第三張圖片就是2*-150
};
function next()
{
now++; //切換圖片
if(now==aBtn.length) //如果到了最后一張圖片
{
now=0; // 把圖片拉回第一張
}
tab(); //把圖片拉回第一張后繼續(xù)運(yùn)動(dòng)
};
var timer=setInterval(next,2000); //2秒自動(dòng)切換圖片
oDiv.onmouseover=function()
{
clearInterval(timer); //清除定時(shí)器
};
oDiv.onmouseout=function()
{
timer=setInterval(next,2000); //開(kāi)啟定時(shí)器
};
};
</script>
完整代碼:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>淘寶幻燈片上下滑動(dòng)效果 —— www.zhinengshe.com —— 智能課堂</title>
<link href="css.css" rel="stylesheet" type="text/css" />
<script src="baseCommon.js"></script>
<script>
window.onload=function()
{
var oDiv=document.getElementById('play');
var aBtn=oDiv.getElementsByTagName('ol')[0].getElementsByTagName('li');
var oUl=oDiv.getElementsByTagName('ul')[0];
var now=0;
for(var i=0;i<aBtn.length;i++)
{
aBtn[i].index=i;
aBtn[i].onmouseover=function()
{
now=this.index; //當(dāng)前值賦給now
tab();
}
};
function tab()
{
for(var i=0;i<aBtn.length;i++)
{
aBtn[i].className=''; //把所有按鈕的樣式清空
};
aBtn[now].className='active'; //當(dāng)前按鈕樣式設(shè)置
startMove(oUl,{top:-150*now}); //用運(yùn)動(dòng)框架把UL的TOP設(shè)置為當(dāng)前個(gè)數(shù)*-150,第三張圖片就是2*-150
};
function next()
{
now++; //切換圖片
if(now==aBtn.length) //如果到了最后一張圖片
{
now=0; // 把圖片拉回第一張
}
tab(); //把圖片拉回第一張后繼續(xù)運(yùn)動(dòng)
};
var timer=setInterval(next,2000); //2秒自動(dòng)切換圖片
oDiv.onmouseover=function()
{
clearInterval(timer); //清除定時(shí)器
};
oDiv.onmouseout=function()
{
timer=setInterval(next,2000); //開(kāi)啟定時(shí)器
};
};
</script>
</head>
<body>
<div class="play" id="play">
<ol>
<li class="active">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ol>
<ul>
<li><a ><img src="images/1.jpg" alt="廣告一" /></a></li>
<li><a ><img src="images/2.jpg" alt="廣告二" /></a></li>
<li><a ><img src="images/3.jpg" alt="廣告三" /></a></li>
<li><a ><img src="images/4.jpg" alt="廣告四" /></a></li>
<li><a ><img src="images/5.jpg" alt="廣告五" /></a></li>
</ul>
</div>
</body>
</html>
相關(guān)文章
javascript中兼容主流瀏覽器的動(dòng)態(tài)生成iframe方法
這篇文章主要介紹了javascript中兼容主流瀏覽器的動(dòng)態(tài)生成iframe方法,需要的朋友可以參考下2014-05-05如何使用50行javaScript代碼實(shí)現(xiàn)簡(jiǎn)單版的call,apply,bind
這篇文章主要介紹了50行javaScript代碼實(shí)現(xiàn)簡(jiǎn)單版的call,apply,bind過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Javascript下拉刷新的簡(jiǎn)單實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了Javascript下拉刷新的簡(jiǎn)單實(shí)現(xiàn)過(guò)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02JavaScript 實(shí)現(xiàn)鍋拍灰太狼小游戲
這篇文章主要介紹了JavaScript 實(shí)現(xiàn)鍋拍灰太狼小游戲,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09