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è)按鈕和第二張圖片想對應(yīng),用運(yùn)動框架把大圖的UL每次移動-150px,因?yàn)閳D片高度是150px。如果移動到第n張圖片就是-150*n。
4、定義變量now,用來自動播放用的。把當(dāng)前圖片賦值給now now=this.index。
5、定義自動播放函數(shù)。now++ 下一張,if判斷,到最后一張圖片的時(shí)候就把now設(shè)置為0,就是第一張。 if(now==aBtn.length)
6、定義定時(shí)器,每2秒就調(diào)用一次自動播放函數(shù)。
7、鼠標(biāo)指向圖片時(shí)就清除定時(shí)器。
8、鼠標(biāo)離開圖片時(shí)就開啟定時(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)動框架把UL的TOP設(shè)置為當(dāng)前個(gè)數(shù)*-150,第三張圖片就是2*-150
};
function next()
{
now++; //切換圖片
if(now==aBtn.length) //如果到了最后一張圖片
{
now=0; // 把圖片拉回第一張
}
tab(); //把圖片拉回第一張后繼續(xù)運(yùn)動
};
var timer=setInterval(next,2000); //2秒自動切換圖片
oDiv.onmouseover=function()
{
clearInterval(timer); //清除定時(shí)器
};
oDiv.onmouseout=function()
{
timer=setInterval(next,2000); //開啟定時(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>淘寶幻燈片上下滑動效果 —— 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)動框架把UL的TOP設(shè)置為當(dāng)前個(gè)數(shù)*-150,第三張圖片就是2*-150
};
function next()
{
now++; //切換圖片
if(now==aBtn.length) //如果到了最后一張圖片
{
now=0; // 把圖片拉回第一張
}
tab(); //把圖片拉回第一張后繼續(xù)運(yùn)動
};
var timer=setInterval(next,2000); //2秒自動切換圖片
oDiv.onmouseover=function()
{
clearInterval(timer); //清除定時(shí)器
};
oDiv.onmouseout=function()
{
timer=setInterval(next,2000); //開啟定時(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)文章
完美實(shí)現(xiàn)仿QQ空間評論回復(fù)特效
這篇文章主要介紹了完美實(shí)現(xiàn)仿QQ空間評論回復(fù)特效,非常的實(shí)用,附上實(shí)例代碼給大家,有需要的小伙伴參考下吧。2015-05-05
Javascript函數(shù)緩存的實(shí)現(xiàn)及應(yīng)用場景
Javascript函數(shù)緩存是一種提高網(wǎng)頁性能的重要技術(shù),通過將函數(shù)結(jié)果存儲在緩存中,避免重復(fù)計(jì)算,從而提高頁面加載速度和響應(yīng)速度,本文主要介紹了Javascript函數(shù)緩存的實(shí)現(xiàn)及應(yīng)用場景,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12
JavaScript詞法作用域與調(diào)用對象深入理解
關(guān)于 Javascript 的函數(shù)作用域、調(diào)用對象和閉包之間的關(guān)系很微妙,關(guān)于它們的文章已經(jīng)有很多,本文做了一些總結(jié),需要的朋友可以參考下2012-11-11
仿iPhone通訊錄制作小程序自定義選擇組件的實(shí)現(xiàn)
這篇文章主要介紹了仿iPhone通訊錄制作小程序自定義選擇組件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05

