圖片輪播效果(二)

制作時間:15:30 - 18:00

拋棄之前測試用的三個方框刚盈,正式制作漂亮的界面胎许。測試環(huán)境只是用Chrome找前,所以瀏覽器兼容性還沒有考慮到丈屹。

html代碼:

<div id="lunbo">
    <ul id="pic_list">
        <li class="pos_0"><img src="./images/8.jpg"></li>
        <li class="pos_1"><img src="./images/1.jpg"></li>
        <li class="pos_2"><img src="./images/2.jpg"></li>
        <li class="pos_3"><img src="./images/3.jpg"></li>
        <li class="pos_4"><img src="./images/4.jpg"></li>
        <li class="pos_5"><img src="./images/5.jpg"></li>
        <li class="pos_6"><img src="./images/6.jpg"></li>
        <li class="pos_6"><img src="./images/7.jpg"></li>
    </ul>

    <a href="javascript:;" class="btn prev">
        <span class="icon"></span>
    </a>

    <a href="javascript:;" class="btn next">
        <span class="icon"></span>
    </a>
</div>

最終要實現(xiàn)的頁面是這樣的:


Paste_Image.png

為這幾張圖片添加紅色標注调俘,便于理解。根據(jù)規(guī)律旺垒,第3張圖的兩邊其實是對稱的脉漏,大小啊,透明度啊袖牙,層級關(guān)系啊都是一樣的。

那我來一步一步添加css代碼舅锄。

首先添加基本的 css 代碼:

@charset "UTF-8";
body,h1,h2,h3,p,ul,img,a {margin:0;padding:0;}
body{background:#FFFFFF url(../images/hxd_bg.gif) repeat-x;}
ul{ list-style: none; }
a{ text-decoration:none; }
img{ border: none; }

#lunbo{
    width:970px;
    height: 344px;
    margin: 98px auto 0;
    position: relative;
}
#lunbo ul{ width: 970px; height: 344px;position:absolute;left:0;top:0; }

接下來的每一步是:

  1. 修改圖片透明度
#lunbo .pos_0 img, #lunbo .pos_6 img{ opacity: 0; }
#lunbo .pos_1 img, #lunbo .pos_5 img{ opacity: 0.6; }
#lunbo .pos_2 img, #lunbo .pos_4 img{ opacity: 0.8; }

2.圖片位置和層級設(shè)置

#lunbo ul li{ position: absolute; }
#lunbo ul .pos_0 { left:0; top: -104px; z-index: 1; }
#lunbo ul .pos_6 { right:0; top: -104px; z-index: 1; }
#lunbo ul .pos_1 { left:0; top:92px; z-index:2; }
#lunbo ul .pos_5 { right:0; top:92px; z-index:2; }
#lunbo ul .pos_2 { left:48px; top:40px; z-index:3; }
#lunbo ul .pos_4 { right:48px; top:40px; z-index:3; }
#lunbo ul .pos_3 { left:140px; top:0; z-index:4; }

3.圖片大小和寬度設(shè)置

#lunbo .pos_3 img {width:680px;}
#lunbo .pos_2 img, #lunbo .pos_4 img {width:510px;}
#lunbo .pos_1 img, #lunbo .pos_5 img, #lunbo .pos_6 img {width:270px;}
#lunbo .pos_0 img {width:100px;}

4.向前向后按鈕

#lunbo a.btn {width:120px;height:110px;position:absolute;z-index:5;cursor:pointer;}
#lunbo a.prev{left:72px;top:108px;}
#lunbo a.next{right:81px;top:108px;}
#lunbo a.btn span{width:76px;height:110px;position:absolute;}
#lunbo a.prev .icon{left:0;top:0;background:url(../images/hxd_btn_1.png) no-repeat left top;}
#lunbo a.next .icon{right:0;top:0;background:url(../images/hxd_btn_1.png) no-repeat left bottom;}

css代碼結(jié)束

js開始

過程:獲取元素的對象 -> 數(shù)組切換 -> 元素屬性重新賦值鞭达。
跟第一版不同的地方:
1. 更改的屬性變多了。
2. 因為向前和向后按鈕實現(xiàn)的功能差不多皇忿,所以可以調(diào)用同一個函數(shù)畴蹭,只是參數(shù)不同。

代碼如下:

var $oDiv = $("#lunbo");
    var $oUl = $("ul");
    var $aLi = $("li");
    var $aLnk = $("ul a");
    var $aImg = $("img");
    var $oPrevBtn = $("a.prev");
    var $oNextBtn = $("a.next");
    var $oPrevIcon = $(".prev.icon");
    var $oNextIcon = $(".next.icon");

    var arr = [];

    for(var i=0; i < $aLi.length; i++){
        var $inow = $aLi.eq(i);
        var iPos = $inow.position();
        var iLeft = iPos.left;
        var iTop = iPos.top;
        var iZindex = $inow.css("z-index");
        var iOpacity = $aImg.eq(i).css("opacity")*100;
        var iWidth = parseInt($aImg.eq(i).css("width"));
        arr.push([iPos, iLeft, iTop, iZindex, iOpacity, iWidth]);

    }

    $oPrevBtn.click(function(){
        imgSwitch(true);
    });

    $oNextBtn.click(function(){
        imgSwitch(false);
    });

    function imgSwitch(isPrev){
        if(isPrev){
            arr.push(arr.shift());
        }else{
            arr.unshift(arr.pop());
        }

        for(var i=0; i < $aLi.length; i++){
            var $inow = $aLi.eq(i);
            $inow.css("z-index",arr[i][3]);
            $inow.animate( { "left":arr[i][1], "top":arr[i][2] } );
            $aImg.eq(i).animate({"opacity":arr[i][4]/100,"width":arr[i][5]});
        }
    }
})

注意:animate對opacity屬性作動畫鳍烁,值的范圍得是0-100叨襟,所以 css("opacity") 通過取值后要 *100。最后賦值的時候再 / 100即可幔荒。

其實還可以添加一些效果糊闽,比如可以設(shè)定成自動輪播的梳玫,鼠標移到圖上時暫停自動輪播等其他你能想得到的效果。那今天這個效果就做到這里了右犹。

不積跬步無以至千里

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末提澎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子念链,更是在濱河造成了極大的恐慌盼忌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掂墓,死亡現(xiàn)場離奇詭異谦纱,居然都是意外死亡,警方通過查閱死者的電腦和手機君编,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門跨嘉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人啦粹,你說我怎么就攤上這事偿荷。” “怎么了唠椭?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵跳纳,是天一觀的道長。 經(jīng)常有香客問我贪嫂,道長寺庄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任力崇,我火速辦了婚禮斗塘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘亮靴。我一直安慰自己馍盟,他們只是感情好,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布茧吊。 她就那樣靜靜地躺著贞岭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪搓侄。 梳的紋絲不亂的頭發(fā)上瞄桨,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機與錄音讶踪,去河邊找鬼芯侥。 笑死,一個胖子當著我的面吹牛乳讥,可吹牛的內(nèi)容都是我干的柱查。 我是一名探鬼主播廓俭,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼物赶!你這毒婦竟也來了白指?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤酵紫,失蹤者是張志新(化名)和其女友劉穎告嘲,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奖地,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡橄唬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了参歹。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仰楚。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖犬庇,靈堂內(nèi)的尸體忽然破棺而出僧界,到底是詐尸還是另有隱情,我是刑警寧澤臭挽,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布捂襟,位于F島的核電站,受9級特大地震影響欢峰,放射性物質(zhì)發(fā)生泄漏葬荷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一纽帖、第九天 我趴在偏房一處隱蔽的房頂上張望宠漩。 院中可真熱鬧,春花似錦懊直、人聲如沸扒吁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瘦陈。三九已至,卻和暖如春波俄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蛾默。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工懦铺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人支鸡。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓冬念,卻偏偏與公主長得像趁窃,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子急前,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容