原生javascript實現(xiàn)圖片輪播效果代碼
更新時間:2010年09月03日 21:09:42 作者:
前幾天用jquery做了一個JS的圖片輪播效果,現(xiàn)在用原生的javascript代碼實現(xiàn)同樣的功能,當練習(xí)用吧,代碼寫得不是很滿意。
看到BlueDream在他博客上寫的javascript仿QQ滑動菜單的效果,代碼實在是優(yōu)雅,相比較差別一下就凸顯了,下次再把他代碼的精髓偷過來,嘿嘿。
【原理簡述】
html和css跟JQuery實現(xiàn)圖片輪播效果里面的一樣,略去。主要是幾個公共函數(shù),漸顯和漸失,用閉包實現(xiàn)。至于主體邏輯部分,非常一般。
【程序源碼】
貼幾個公共函數(shù)算了,fadeIn,漸顯,fadeOut,漸失
function id(name) {return document.getElementById(name);}
//遍歷函數(shù)
function each(arr, callback) {
if (arr.forEach) {arr.forEach(callback);}
else {
for (var i = 0, len = arr.length; i < len; i++) callback.call(this, arr[i], i, arr);}
}
function fadeIn(elem) {
setOpacity(elem, 0)
for ( var i = 0; i < 20; i++) {
(function() {
var pos = i * 5;
setTimeout(function() {
setOpacity(elem, pos)
}, i * 25);
})(i);
}
}
function fadeOut(elem) {
for ( var i = 0; i <= 20; i++) {
(function() {
var pos = 100 - i * 5;
setTimeout(function() {
setOpacity(elem, pos)
}, i * 25);
})(i);
}
}
// 設(shè)置透明度
function setOpacity(elem, level) {
if (elem.filters) {
elem.style.filter = "alpha(opacity=" + level + ")";
} else {
elem.style.opacity = level / 100;
}
}
【調(diào)用方法】
//count:圖片數(shù)量,wrapId:包裹圖片的DIV,ulId:按鈕DIV,infoId:信息欄
babyzone.scroll(count,wrapId,ulId,infoId);
babyzone.scroll(4,"banner_list","list","banner_info");
【源碼下載】
/201009/yuanma/scroll_babyzone.rar
【原理簡述】
html和css跟JQuery實現(xiàn)圖片輪播效果里面的一樣,略去。主要是幾個公共函數(shù),漸顯和漸失,用閉包實現(xiàn)。至于主體邏輯部分,非常一般。
【程序源碼】
貼幾個公共函數(shù)算了,fadeIn,漸顯,fadeOut,漸失
復(fù)制代碼 代碼如下:
function id(name) {return document.getElementById(name);}
//遍歷函數(shù)
function each(arr, callback) {
if (arr.forEach) {arr.forEach(callback);}
else {
for (var i = 0, len = arr.length; i < len; i++) callback.call(this, arr[i], i, arr);}
}
function fadeIn(elem) {
setOpacity(elem, 0)
for ( var i = 0; i < 20; i++) {
(function() {
var pos = i * 5;
setTimeout(function() {
setOpacity(elem, pos)
}, i * 25);
})(i);
}
}
function fadeOut(elem) {
for ( var i = 0; i <= 20; i++) {
(function() {
var pos = 100 - i * 5;
setTimeout(function() {
setOpacity(elem, pos)
}, i * 25);
})(i);
}
}
// 設(shè)置透明度
function setOpacity(elem, level) {
if (elem.filters) {
elem.style.filter = "alpha(opacity=" + level + ")";
} else {
elem.style.opacity = level / 100;
}
}
【調(diào)用方法】
//count:圖片數(shù)量,wrapId:包裹圖片的DIV,ulId:按鈕DIV,infoId:信息欄
babyzone.scroll(count,wrapId,ulId,infoId);
babyzone.scroll(4,"banner_list","list","banner_info");
【源碼下載】
/201009/yuanma/scroll_babyzone.rar
相關(guān)文章
JS關(guān)閉窗口與JS關(guān)閉頁面的幾種方法小結(jié)
本篇文章要是對JS關(guān)閉窗口與JS關(guān)閉頁面的幾種方法進行了總結(jié)介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-12-12JavaScript調(diào)用ajax獲取文本文件內(nèi)容實現(xiàn)代碼
這篇文章主要介紹了JavaScript調(diào)用ajax獲取文本文件內(nèi)容的方法,需要的朋友可以參考下2014-03-03JS中Generator函數(shù)與async函數(shù)用法介紹
javascript中經(jīng)常會用到異步編程,在ES6之后我們使用的?Generator函數(shù)、async函數(shù)、promise都是我們異步編程的一大助力,這里我們主要講解Generator、async函數(shù),并且簡介他們之間的一些聯(lián)系,本篇文章會帶著一些簡易案例,方便大家理解使用2023-06-06javascript實現(xiàn)發(fā)送短信驗證碼案例
這篇文章主要為大家詳細介紹了javascript實現(xiàn)發(fā)送短信驗證碼案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07js 多種變量定義(對象直接量,數(shù)組直接量和函數(shù)直接量)
js 多種變量定義(對象直接量,數(shù)組直接量和函數(shù)直接量),大家可以參考下,對于以后學(xué)習(xí)js 面向?qū)τ谂cjson操作會有幫助。2010-05-05TypeScript中正確使用interface和type的方法實例
在ts中定義類型由兩種方式:接口(interface)和類型別名(type alias),interface只能定義對象類型,下面這篇文章主要給大家介紹了關(guān)于TypeScript中正確使用interface和type的相關(guān)資料,需要的朋友可以參考下2021-09-09