通過JQuery實現win8一樣酷炫的動態磚效果

來源:互聯網
上載者:User

我個人表示非常喜歡微軟新一代的產品,先不管它產品的成熟與否,但是它帶來的是全新的產品。所謂全新,是指在使用者體驗上,蘋果這些年的成功使得所有產品都在模仿它的介面,包括安卓在內,不知道大家的感覺如何,反正我是對這些圓角矩形產生了審美疲勞(蘋果以及安卓的粉絲勿噴,這裡僅僅是從介面上評價,事實上從整體上來說,微軟還是有差距的),當年wp的推出讓我眼前一亮,馬上喜歡上了Metro風格的產品,直至今天wp8以及win8開始越來越成熟。

相信大家喜歡這個介面無非也是喜歡它的動態磚。剛好今天研究了一下如何通過JQuery在網頁上模仿這種效果,就貼出來給大家噴一下(我相信不少所謂大神都比較喜歡噴人,我的上一篇部落格就被噴得體無完膚,當然真正的大神是不會噴人的,因為他們都明白路是怎樣走過來的,每個人都是從菜鳥過來,將心比心)。雖然是一些很低級的技術,但是我知道,還是有一些菜鳥級的童鞋會看到我的文章的,只要有一個人覺得對他有用,我的這篇文章就算是對園子做了貢獻,任憑其他千百人怎麼噴。

寫的不好,歡迎各位看官指正批評,不歡迎無故猛噴。大神請繞道。

廢話少說,進入正題。基本思想是:定義一個外層div,固定高度(例如本例中的180px)並設定屬性overflow:hidden(隱藏超出邊框的部分),然後在這個div裡面定義一個內層div,並設定屬性position:relative(採用相對布局)。在這個內層div裡面,我們定義一張圖片,注意要設定它的高度跟外層div高度一樣(如本例中的180px),再定義一個div放文字,該div的高度也和外層div高度一樣(如本例中的180px,如果你給了一個padding,則高度相應減小,以達到整個div是180px的高度)。布局代碼如下所示

html:

<div id="outside">    <div id="inside">        <img width="180px" height="180px" src="http://pic.cnitblog.com/avatar/505350/20130316011725.png" />        <div id="text">            <span>通過JQuery實現win8一樣酷炫的動態磚效果</span>            <p>林宇</p>            <p>我個人表示非常喜歡微軟新一代的產品……</p>        </div>    </div></div>

css:

#outside{    height:180px;    overflow:hidden;}#inside{    position:relative;}#text{    width:160px;    height:160px;    background:#0000ff;    padding:10px;    color:#fff;}

 

剩下來的就是JQuery的事情了。首先先理解一下這個“動態磚”的動作:一開始顯示一張圖片,然後向上滑動顯示文字,停留一會,再向下滑動顯示圖片,如此迴圈。我們先定義一個函數:

function go(id, d1, px1, val1, d2, px2, val2) {    $(id).delay(d1);    $(id).animate({ bottom: px1 }, val1, function () {        $(id).delay(d2);        $(id).animate({ bottom: px2 }, val2);    });}

這裡有7個參數,id是內層div也就是要滑動的div的id,d1是內層div滑上去以後停留的時間,px1是內層div要向上滑動的相對位置,預設當前位置為0px,val1是內層div的完成向上滑動動作所需要的時間,d2是向下滑動div後停留的時間,px2是向下滑動的相對位置,這裡依然是以原來的位置為0px,val2是完成向下滑動所需的時間。

然後我們在頁面載入完成的時候設定一個定時器,來執行我們定義的go函數:

$(function () {    timer1 = setInterval(function () {        go("#inside", 1500, "180px", 1200, 1000, "0px", 2000);    }, 3000);});

這裡的參數可以根據需要進行修改,這裡我們讓定時器每3秒執行一次go函數。

源碼基本都貼出來了,有需要源檔案的童鞋可以猛擊這裡下載。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.