欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一步一步教你寫帶圖片注釋的淡入淡出插件(三)

 更新時間:2010年10月11日 22:13:19   作者:  
接上一文,我們已經(jīng)實現(xiàn)了圖片的自動淡入淡出播放。接下來需要加入控制器。
其實憑借著之前良好的代碼結(jié)構(gòu),加入控制器很簡單(^_^這也就是為什么我說剛開始的架構(gòu)的代碼結(jié)構(gòu)很重要?。?
  先說一下加入控制器的思路:
根據(jù)輪播元素的個數(shù)為每一個元素添加一個對應(yīng)的控制按鈕,(這里我直接用a標簽來做,考慮語義的話可以用ul或ol),考慮到書寫樣式的方便可以先create一個控制器父標簽,然后依次把每個控制按鈕append到控制器父標簽,再把父標簽append到我們的輪播模塊中就ok了。然后再為對應(yīng)的元素添加上對應(yīng)的css樣式即可
  好了,說完思路,咱們動手開始,控制器的繪制應(yīng)該在init()中。所以我們可以這樣寫:
復(fù)制代碼 代碼如下:

init:function(options){ //options參數(shù):id(必選):圖片列表父標簽id;auto(可選):自動運行時間;index(可選):開始的運行的圖片序號
var wp = H$(options.id), // 獲取圖片列表父元素
ul = H$$('ul',wp)[0], // 獲取
li = this.li = H$$('li',ul);
this.a = options.auto?options.auto:2; //自動運行間隔
this.index = options.position?options.position:0; //開始運行的圖片序號(從0開始)
this.l = li.length;
this.cur = this.z = 0; //當前顯示的圖片序號&&z-index變量
nav_wp = document.createElement('div'); //先建一個div作為控制器父標簽,你也可以用<ul>或<ol>來做,語義可能會更好,這里我就不改了
nav_wp.style.cssText = 'position:absolute;right:0;bottom:0;padding:8px 0;'; //為它設(shè)置樣式
/* ==加入淡入淡出功能 ==*/
for(var i=0;i<this.l;i++){
this.li[i].o = 100; //為每一個圖片都設(shè)置一個透明度變化量
this.li[i].style.opacity = this.li[i].o/100; //非IE用opacity即可
this.li[i].style.filter = 'alpha(opacity='+this.li[i].o+')'; //IE用濾鏡
/* == 繪制控制器 == */
var nav = document.createElement('a'); //這里我就直接用a標簽來做控制器,考慮語義的話你也可以用li
nav.className = options.navClass?options.navClass:'fader-nav'; //控制器class,默認為'fader-nav'
nav.innerHTML = i+1;
nav.onclick = new Function(this.anchor+'.pos('+i+')'); //綁定onclick事件,直接調(diào)用之前寫好的pos()函數(shù)
nav_wp.appendChild(nav);
}
wp.appendChild(nav_wp); //控制器append到頁面
this.pos(this.index); //變換函數(shù)
},

上面的代碼即是加入控制器后的完整init(),總共也就增加了7行代碼。
寫到這里,可能有朋友會著急去試了,結(jié)果發(fā)現(xiàn)根本看不到自己添進去的控制器。。。
呵呵,別忘了,我們是用z-index來控制圖片顯隱的,別人的z-index從一開始就不斷的一個一個增加,而控制器一建出來默認的z-index只是0,當然不可能顯示出來。所以我們還得再加一行代碼來控制這個控制器的z-index。好讓它始終處于輪播元素之上。
  所以,在變換函數(shù)pos()中,
復(fù)制代碼 代碼如下:

pos:function(i){
clearInterval(this.li.a); //清除自動變換計時器
clearInterval(this.li[i].f); //清除淡入淡出效果計時器
this.z++;
this.li[i].style.zIndex = this.z; //每次讓下一張圖片z-index加一
nav_wp.style.zIndex = this.z+1; //控制器z-index要始終比輪播元素z-index最大的那個還大1
this.cur = i; //綁定當前顯示圖片的正確序號
this.li.a = false; //做一個標記,下面要用到,表示清除計時器已經(jīng)完成
//this.auto(); //自動運行
if(this.li[i].o>=100){ //在圖片淡入之前先把圖片透明度置為透明
this.li[i].o = 0;
this.li[i].style.opacity = 0;
this.li[i].style.filter = 'alpha(opacity=0)';
}
this.li[i].f = setInterval(new Function(this.anchor+'.fade('+i+')'),20);
},

上面的代碼其實也就加了一句,在第6行。
有了這添加的8句話,再加上相應(yīng)的css,控制器就初見雛形了??刂破鱟ss是這樣的
復(fù)制代碼 代碼如下:
.fader-nav{display:inline-block;margin-right:8px;color:#fff;padding:2px 6px;background:#333;border:1px solid #fff;font-family:Tahoma;font-weight:bold;font-size:12px;cursor:pointer;}

看下雛形效果吧。

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

發(fā)現(xiàn)了吧,咱們還缺個控制器當前的樣式。所以還要添兩句,一句添在init()中
this.curC = options.curNavClass?options.curNavClass:'fader-cur-nav'; //定義控制器當前樣式變量,在pos()中把它賦給對應(yīng)的那一個
在pos()中:
for(var x=0;x<this.l;x++){
nav_wp.getElementsByTagName('a')[x].className = x==i?this.curC:'fader-nav'; //綁定當前控制器樣式
}
這樣就ok了,另外再加上當前狀態(tài)的css樣式:
.fader-cur-nav{display:inline-block;margin-right:8px;color:#fff;padding:2px 6px;background:#ff7a00;border:1px solid #fff;font-family:Tahoma;font-weight:bold;font-size:12px;cursor:pointer;}
好了,這下基本上可以了,再看看效果:

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

恩,好了,上面這個效果其實大多數(shù)情況下已經(jīng)夠用了,不過有朋友有更多需求,想在底部加一個圖片備注的層,這一個功能在下一部分實現(xiàn)吧!

相關(guān)文章

  • php結(jié)合js實現(xiàn)多條件組合查詢

    php結(jié)合js實現(xiàn)多條件組合查詢

    這篇文章主要為大家詳細介紹了php結(jié)合js實現(xiàn)多條件組合查詢,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • JS基于正則截取替換特定字符之間字符串操作示例

    JS基于正則截取替換特定字符之間字符串操作示例

    這篇文章主要介紹了JS基于正則截取替換特定字符之間字符串操作方法,結(jié)合具體實例形式分析了JS基于正則實現(xiàn)針對特殊字符、數(shù)字等字符串類型的截取操作相關(guān)技巧,需要的朋友可以參考下
    2017-02-02
  • JavaScript中利用for循環(huán)遍歷數(shù)組

    JavaScript中利用for循環(huán)遍歷數(shù)組

    這篇文章主要為大家詳細介紹了JavaScript中利用for循環(huán)遍歷數(shù)組,最好不要使用for in遍歷,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • 如何使用JavaScript檢測空閑的瀏覽器選項卡

    如何使用JavaScript檢測空閑的瀏覽器選項卡

    這篇文章主要介紹了如何使用JavaScript檢測空閑的瀏覽器選項卡,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • Bootstrap作品展示站點實戰(zhàn)項目2

    Bootstrap作品展示站點實戰(zhàn)項目2

    這篇文章主要為大家分享了Bootstrap作品展示站點實戰(zhàn)項目,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • JavaScript閉包詳解

    JavaScript閉包詳解

    一分鐘理解JavaScript閉包,關(guān)于JavaScript閉包的內(nèi)容介紹了很多,本文帶著大家快速理解什么是JavaScript閉包,感興趣的小伙伴們可以參考一下
    2021-10-10
  • JavaScript數(shù)據(jù)結(jié)構(gòu)之鏈表的實現(xiàn)

    JavaScript數(shù)據(jù)結(jié)構(gòu)之鏈表的實現(xiàn)

    鏈表是一種常見的數(shù)據(jù)結(jié)構(gòu)。它是動態(tài)地進行存儲分配的一種結(jié)構(gòu)。本文主要介紹JavaScript數(shù)據(jù)結(jié)構(gòu)中鏈表的實現(xiàn),具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • 微信小程序如何獲取群聊的openGid以及名稱詳解

    微信小程序如何獲取群聊的openGid以及名稱詳解

    這篇文章主要介紹了小程序如何獲取群聊的openGid以及名稱詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • JS中數(shù)據(jù)結(jié)構(gòu)與算法---排序算法(Sort Algorithm)實例詳解

    JS中數(shù)據(jù)結(jié)構(gòu)與算法---排序算法(Sort Algorithm)實例詳解

    排序也稱排序算法 (Sort Algorithm),排序是將 一組數(shù)據(jù) , 依指定的順序 進行 排列的過程 。這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)與算法---排序算法(Sort Algorithm),需要的朋友可以參考下
    2019-06-06
  • 一個js過濾空格的小函數(shù)

    一個js過濾空格的小函數(shù)

    過濾空格,尤其是在一些注冊頁面比較實用,可以用js在客戶端將空格過濾掉,減輕服務(wù)器端的負擔,下面是實現(xiàn)函數(shù)
    2014-10-10

最新評論