JavaScript 圖片切換展示效果alibaba拓展版第1/3頁(yè)
更新時(shí)間:2008年09月15日 10:27:44 作者:
看到alibaba的一個(gè)圖片切換效果,感覺不錯(cuò),想拿來(lái)用用。但代碼一大堆的,看著昏,還是自己來(lái)吧。
由于有了做圖片滑動(dòng)展示效果的經(jīng)驗(yàn),做這個(gè)就容易得多了。
首先需要一個(gè)容器,設(shè)置它的overflow為hidden,position為relative;
容器里面還要一個(gè)滑動(dòng)對(duì)象,設(shè)置它的position為absolute;
在initialize()函數(shù)里初始化一些屬性。
在切換之前先執(zhí)行Start()函數(shù),進(jìn)行相關(guān)設(shè)置,
主要是設(shè)置Index屬性(索引)和_target屬性(目標(biāo)值):
if(this.Index < 0){
this.Index = this._count - 1;
} else if (this.Index >= this._count){ this.Index = 0; }
this._target = -1 * this._parameter * this.Index;
接著就執(zhí)行Move()函數(shù)開始移動(dòng)了,原理通過(guò)設(shè)置滑動(dòng)對(duì)象的top(或left)來(lái)做出移動(dòng)的效果,
而減速的效果就需要執(zhí)行GetStep()函數(shù)來(lái)獲取步長(zhǎng):
var iStep = (iTarget - iNow) / this.Step;用目標(biāo)值減當(dāng)前值再除以一個(gè)參數(shù),得到步長(zhǎng),
這樣取得的步長(zhǎng)在當(dāng)前值越接近目標(biāo)值時(shí)會(huì)越來(lái)越小,也做成了減速的效果,
然后在top(或left)的設(shè)置中加上這個(gè)步長(zhǎng),并設(shè)置定時(shí)器繼續(xù)Move(),直到到達(dá)目標(biāo)值:
this._slider.style[style] = (iNow + iStep) + "px";
this._timer = setTimeout(function(){ oThis.Move(); }, this.Time);
下面例子里的容器結(jié)構(gòu):
<div class="container" id="idTransformView">
<ul class="slider" id="idSlider">
<li><img src="http://shundebk.cn/temp/1.jpg"/></li>
<li><img src="http://shundebk.cn/temp/2.jpg"/></li>
<li><img src="http://shundebk.cn/temp/3.gif"/></li>
</ul>
<ul class="num" id="idNum">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
要美觀的話需要css設(shè)置一下:
.container, .container *{margin:0; padding:0;}
.container{width:408px; height:168px; overflow:hidden;}
.slider{position:absolute;}
.slider li{ list-style:none;display:inline;}
.slider img{ width:408px; height:168px; display:block;}
.slider2{width:2000px;}
.slider2 li{float:left;}
.num{ position:absolute; right:5px; bottom:5px;}
.num li{
float: left;
color: #FF7300;
text-align: center;
line-height: 16px;
width: 16px;
height: 16px;
font-family: Arial;
font-size: 12px;
cursor: pointer;
overflow: hidden;
margin: 3px 1px;
border: 1px solid #FF7300;
background-color: #fff;
}
.num li.on{
color: #fff;
line-height: 21px;
width: 21px;
height: 21px;
font-size: 16px;
margin: 0 1px;
border: 0;
background-color: #FF7300;
font-weight: bold;
}
樣式的設(shè)置跟程序也有一定關(guān)系,例如寬和高,這里就不說(shuō)明了。
接著就可以實(shí)例化了:
var tv = new TransformView ("idTransformView", "idSlider", 168, 3, {
onStart : function(){ Each(objs, function(o, i) { o.className = tv.Index == i ? "on" : ""; }) }//按鈕樣式
});
這里主要有4個(gè)參數(shù),分別是容器對(duì)象、滑動(dòng)對(duì)象、切換參數(shù)和切換數(shù)量。
當(dāng)程序是上下切換時(shí),切換參數(shù)切換的高度,當(dāng)左右切換時(shí),是切換的寬度。
切換數(shù)量就是有多少個(gè)切換對(duì)象了,例如上面的例子就是3個(gè)。
最后的參數(shù)是一些設(shè)置:
屬性: 默認(rèn)值//說(shuō)明
Up: true,//是否向上(否則向左)
Step: 5,//滑動(dòng)變化率
Time: 10,//滑動(dòng)延時(shí)
Auto: true,//是否自動(dòng)轉(zhuǎn)換
Pause: 2000,//停頓時(shí)間(Auto為true時(shí)有效)
onStart: function(){},//開始轉(zhuǎn)換時(shí)執(zhí)行
onFinish: function(){}//完成轉(zhuǎn)換時(shí)執(zhí)行
例子里設(shè)置了onStart屬性,作用是在切換開始時(shí),設(shè)置按鈕的樣式
容器里面還要一個(gè)滑動(dòng)對(duì)象,設(shè)置它的position為absolute;
在initialize()函數(shù)里初始化一些屬性。
在切換之前先執(zhí)行Start()函數(shù),進(jìn)行相關(guān)設(shè)置,
主要是設(shè)置Index屬性(索引)和_target屬性(目標(biāo)值):
復(fù)制代碼 代碼如下:
if(this.Index < 0){
this.Index = this._count - 1;
} else if (this.Index >= this._count){ this.Index = 0; }
this._target = -1 * this._parameter * this.Index;
接著就執(zhí)行Move()函數(shù)開始移動(dòng)了,原理通過(guò)設(shè)置滑動(dòng)對(duì)象的top(或left)來(lái)做出移動(dòng)的效果,
而減速的效果就需要執(zhí)行GetStep()函數(shù)來(lái)獲取步長(zhǎng):
復(fù)制代碼 代碼如下:
var iStep = (iTarget - iNow) / this.Step;用目標(biāo)值減當(dāng)前值再除以一個(gè)參數(shù),得到步長(zhǎng),
這樣取得的步長(zhǎng)在當(dāng)前值越接近目標(biāo)值時(shí)會(huì)越來(lái)越小,也做成了減速的效果,
然后在top(或left)的設(shè)置中加上這個(gè)步長(zhǎng),并設(shè)置定時(shí)器繼續(xù)Move(),直到到達(dá)目標(biāo)值:
復(fù)制代碼 代碼如下:
this._slider.style[style] = (iNow + iStep) + "px";
this._timer = setTimeout(function(){ oThis.Move(); }, this.Time);
下面例子里的容器結(jié)構(gòu):
復(fù)制代碼 代碼如下:
<div class="container" id="idTransformView">
<ul class="slider" id="idSlider">
<li><img src="http://shundebk.cn/temp/1.jpg"/></li>
<li><img src="http://shundebk.cn/temp/2.jpg"/></li>
<li><img src="http://shundebk.cn/temp/3.gif"/></li>
</ul>
<ul class="num" id="idNum">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
要美觀的話需要css設(shè)置一下:
復(fù)制代碼 代碼如下:
.container, .container *{margin:0; padding:0;}
.container{width:408px; height:168px; overflow:hidden;}
.slider{position:absolute;}
.slider li{ list-style:none;display:inline;}
.slider img{ width:408px; height:168px; display:block;}
.slider2{width:2000px;}
.slider2 li{float:left;}
.num{ position:absolute; right:5px; bottom:5px;}
.num li{
float: left;
color: #FF7300;
text-align: center;
line-height: 16px;
width: 16px;
height: 16px;
font-family: Arial;
font-size: 12px;
cursor: pointer;
overflow: hidden;
margin: 3px 1px;
border: 1px solid #FF7300;
background-color: #fff;
}
.num li.on{
color: #fff;
line-height: 21px;
width: 21px;
height: 21px;
font-size: 16px;
margin: 0 1px;
border: 0;
background-color: #FF7300;
font-weight: bold;
}
樣式的設(shè)置跟程序也有一定關(guān)系,例如寬和高,這里就不說(shuō)明了。
接著就可以實(shí)例化了:
復(fù)制代碼 代碼如下:
var tv = new TransformView ("idTransformView", "idSlider", 168, 3, {
onStart : function(){ Each(objs, function(o, i) { o.className = tv.Index == i ? "on" : ""; }) }//按鈕樣式
});
這里主要有4個(gè)參數(shù),分別是容器對(duì)象、滑動(dòng)對(duì)象、切換參數(shù)和切換數(shù)量。
當(dāng)程序是上下切換時(shí),切換參數(shù)切換的高度,當(dāng)左右切換時(shí),是切換的寬度。
切換數(shù)量就是有多少個(gè)切換對(duì)象了,例如上面的例子就是3個(gè)。
最后的參數(shù)是一些設(shè)置:
屬性: 默認(rèn)值//說(shuō)明
Up: true,//是否向上(否則向左)
Step: 5,//滑動(dòng)變化率
Time: 10,//滑動(dòng)延時(shí)
Auto: true,//是否自動(dòng)轉(zhuǎn)換
Pause: 2000,//停頓時(shí)間(Auto為true時(shí)有效)
onStart: function(){},//開始轉(zhuǎn)換時(shí)執(zhí)行
onFinish: function(){}//完成轉(zhuǎn)換時(shí)執(zhí)行
例子里設(shè)置了onStart屬性,作用是在切換開始時(shí),設(shè)置按鈕的樣式
您可能感興趣的文章:
- 最簡(jiǎn)單的js圖片切換效果實(shí)現(xiàn)代碼
- 用html+css+js實(shí)現(xiàn)的一個(gè)簡(jiǎn)單的圖片切換特效
- 純js實(shí)現(xiàn)背景圖片切換效果代碼
- 簡(jiǎn)單的實(shí)現(xiàn)點(diǎn)擊箭頭圖片切換的js代碼
- css圖片切換效果代碼[不用js]
- 純js無(wú)flash仿搜狐女人頻道FLASH圖片切換效果代碼
- javascript實(shí)現(xiàn)圖片切換的幻燈片效果源代碼
- jQuery圖片切換插件jquery.cycle.js使用示例
- js鼠標(biāo)點(diǎn)擊圖片切換效果代碼分享
- JS實(shí)現(xiàn)圖片切換特效
相關(guān)文章
javascript實(shí)現(xiàn)網(wǎng)站頂部出現(xiàn)幾秒后圖片緩慢消失的效果
快過(guò)年了,很多網(wǎng)站首頁(yè)都放上了新春的祝福,有些是直接換成皮膚了,而有些則是用一張很大的圖片放在網(wǎng)站頂部,在倒數(shù)幾秒后,緩慢升上去直到最后消失。2011-01-01
純js無(wú)flash仿搜狐女人頻道FLASH圖片切換效果代碼
2008-01-01

