【執行個體示範】
前幾天用jquery做了一個JS的圖片輪播效果,現在用原生的javascript代碼實現同樣的功能,當練慣用吧,代碼寫得不是很滿意。看到BlueDream在他部落格上寫的javascript仿QQ滑動菜單的效果,代碼實在是優雅,相比較差別一下就凸顯了,下次再把他代碼的精髓偷過來,嘿嘿。
【原理簡述】
html和css跟JQuery實現圖片輪播效果裡面的一樣,略去。主要是幾個公用函數,漸顯和漸失,用閉包實現。至於主體邏輯部分,非常一般。
【程式源碼】
貼幾個公用函數算了,fadeIn,漸顯,fadeOut,漸失
代碼 function id(name) {return document.getElementById(name);}
//遍曆函數
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);
}
}
// 設定透明度
function setOpacity(elem, level) {
if (elem.filters) {
elem.style.filter = "alpha(opacity=" + level + ")";
} else {
elem.style.opacity = level / 100;
}
}
【調用方法】
//count:圖片數量,wrapId:包裹圖片的DIV,ulId:按鈕DIV,infoId:資訊列
babyzone.scroll(count,wrapId,ulId,infoId);
babyzone.scroll(4,"banner_list","list","banner_info");
【源碼下載】
點擊下載
《原生javascript實現圖片輪播效果》BY
橡樹小屋
from http://www.cnblogs.com/babyzone2004/本文地址:http://www.cnblogs.com/babyzone2004/archive/2010/09/02/1816090.html