JavaScript 圖片切換展示效果alibaba拓展版第1/3頁
更新時(shí)間:2008年09月15日 10:27:44 作者:
看到alibaba的一個(gè)圖片切換效果,感覺不錯(cuò),想拿來用用。但代碼一大堆的,看著昏,還是自己來吧。
由于有了做圖片滑動(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)了,原理通過設(shè)置滑動(dòng)對(duì)象的top(或left)來做出移動(dòng)的效果,
而減速的效果就需要執(zhí)行GetStep()函數(shù)來獲取步長(zhǎng):
var iStep = (iTarget - iNow) / this.Step;用目標(biāo)值減當(dāng)前值再除以一個(gè)參數(shù),得到步長(zhǎng),
這樣取得的步長(zhǎng)在當(dāng)前值越接近目標(biāo)值時(shí)會(huì)越來越小,也做成了減速的效果,
然后在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)系,例如寬和高,這里就不說明了。
接著就可以實(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)值//說明
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)了,原理通過設(shè)置滑動(dòng)對(duì)象的top(或left)來做出移動(dòng)的效果,
而減速的效果就需要執(zhí)行GetStep()函數(shù)來獲取步長(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ì)越來越小,也做成了減速的效果,
然后在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)系,例如寬和高,這里就不說明了。
接著就可以實(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)值//說明
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無flash仿搜狐女人頻道FLASH圖片切換效果代碼
- javascript實(shí)現(xiàn)圖片切換的幻燈片效果源代碼
- jQuery圖片切換插件jquery.cycle.js使用示例
- js鼠標(biāo)點(diǎn)擊圖片切換效果代碼分享
- JS實(shí)現(xiàn)圖片切換特效
相關(guān)文章
推薦自用 Javascript 縮圖函數(shù) (onDOMLoaded)……
推薦自用 Javascript 縮圖函數(shù) (onDOMLoaded)……...2007-10-10JS實(shí)現(xiàn)鼠標(biāo)移動(dòng)到縮略圖顯示大圖的圖片放大效果
一個(gè)網(wǎng)頁上用的圖片提示效果,當(dāng)把鼠標(biāo)移動(dòng)到圖片縮略圖的時(shí)候,會(huì)顯示圖片大圖,似乎在網(wǎng)上這是個(gè)很常見的效果,實(shí)現(xiàn)方法也比較多,有人用CSS,有人用JavaScript,有人用jQuery,總之,選擇自己習(xí)慣的方式去實(shí)現(xiàn),就是最棒的。2012-12-12javascript橢圓旋轉(zhuǎn)相冊(cè)實(shí)現(xiàn)代碼
支持自動(dòng)和手動(dòng)兩種模式:自動(dòng)模式下自動(dòng)旋轉(zhuǎn)展示,手動(dòng)模式下通過鼠標(biāo)選擇當(dāng)前圖片,或通過提供的接口選擇上一張/下一張圖片2012-01-01javascript 放大鏡效果js組件 qsoft.PopBigImage.v0.35 加入了chrome支持
一般頁面的的圖片為了布局考慮,顯示大小都小于實(shí)際大小。 鼠標(biāo)在圖片上移動(dòng)時(shí),在旁邊展示一個(gè)跟此圖片顯示大小一樣的層。并講鼠標(biāo)附近區(qū)域?qū)?yīng)的原始圖片的區(qū)域按原始大小顯示在這個(gè)層中。2009-04-04