CSS3實戰開發: 手把手教大家實戰開發滑鼠划過圖片動畫特效

來源:互聯網
上載者:User

標籤:style   blog   http   color   os   io   strong   for   

各位網友大家好,我是陌上花會開,當然大家也可以叫我陌陌。今天這篇文章,我將手把手帶領大家實戰開發一個滑鼠划過圖片時的動畫特效。在這裡我不會給大家提供案例的源碼下載,但是本人可以保證,只要大家跟著我的思路,一步步將代碼複製到本地,一定會得到同樣的運行效果。希望大家明白我的用心。好了不廢話,直接進入今天的主題吧。

在今天這個案例裡,我準備3個素材,一張背景圖,兩張風景圖片。這個大家可以到網上自行下載。

在寫代碼之前,我先給大家展示一下,動畫特效的。

滑鼠花過前:

當滑鼠划過圖片時,圖片將逐漸層亮:

 

大家從上面的兩幅比較圖片大概也可以看出來,特效是:當滑鼠划過圖片時,由內而外逐漸層量。

好了,開始今天的實戰之旅吧。

首先我們先編寫html代碼,下面高亮的樣式名就是我們今天著重實現的:

 

<!DOCTYPE html> <html><head><meta charset=”utf-8″><link rel=”stylesheet” href=”styles_2014080702.css”><meta name=”keywords” content=”css,css3,滑鼠划過動畫效果,css3實戰開發,css3案例“ /><title>css3實現滑鼠划過圖片時效果(1)</title></head><body><div class=”container”><div class=”photowall“><div class=”photoview“><a href=”http://www.itdriver.cn”><img src=”img01.jpg” width=”320″ height=”200″ /></a><div class=”mask“></div></div><div class=”photoview“><a href=”http://www.itdriver.cn”><img src=”img02.jpg” width=”320″ height=”200″ /></a><div class=”mask“></div></div></div></div></body></html>

 

我們根據上面的,大概可以知道要對哪幾個div應用樣式:

1. 給牆按上背景紙;

2.給照片應用樣式,實現內邊距補白;

3.設定一遮蓋層;

好了,既然知道需要做哪些樣式了,直接進入樣式編碼吧!

我們首先給container設定樣式,使容器置中顯示,代碼如下:

 

*{ /* 清空所有元素內外邊距*/  margin:0;  padding:0;}html,body,.container{ /*設定container高度瀏覽器自適應*/  height:100%;}.container { /*設定container容器樣式*/  width:80%;  margin:auto;  padding:10px;}

 

緊接著,我們給照片牆應用樣式,給它貼上壁紙,同時設定它的高度為500px,代碼如下:

.photowall{    background:url(bg.png); /*設定照片牆背景*/    background-size:cover;  /*設定背景以最小值填充*/    height:500px; /*設定照片牆的高度*/}

 

我們先看一下此時頁面的運行效果:

現在我們應用CSS3的盒模型屬性,將照片在垂直和水平方向上都置中顯示,代碼如下:

.photowall{    background:url(bg.png); /*設定照片牆背景*/    background-size:cover;  /*設定背景以最小值填充*/    height:500px; /*設定照片牆的高度*/    display:-webkit-box; /*應用盒子模型*/    display:-moz-box;    display:-o-box;    display:box;    -webkit-box-pack:center; /*使盒子內元素水平置中*/    -moz-box-pack:center;    -o-box-pack:center;    box-pack:center;    -webkit-box-align:center; /* 設定盒子內元素垂直方向上置中分配空間*/    -moz-box-align:center;    -o-box-align:center;    box-align:center;}    

 

緊接著,我們給照片加上陰影製作效果,同時設定照片的內邊框,代碼如下:

.photowall .photoview { /*給照片框應用樣式*/    padding:6px;    background:#FFFFFF;    margin:0 10px;    position:relative;    overflow:hidden; /*將溢出的內容隱藏*/    box-shadow:2px 2px 6px black; /*給照片框應用陰影製作效果*/}

 

那此時的運行效果如何呢?

好了,整個樣子已經出來的,現在我們給照片增加效果吧!

結果我們要做的就是先設定遮蓋物,由於我們已經給照片類設定了position:relative;屬性,現在我們可以輕易的通過絕對位置來改變樣式為.mask的元素位置了。我們應該知道,當元素設定了position後,則代表它已經脫離了標準的文檔流而懸浮起來,所以我們可以輕易的調整.mask元素的位置來達到遮蓋物的效果。現在我們給遮蓋物.mask應用效果吧:

.photoview .mask{position:absolute; /*由於父容器設定了position:relative,所以子項目可以相對父容器做絕對位置*/top:60px;left:120px;height: 120px; /*設定遮蓋物的寬高*/width: 120px;cursor:pointer;border-radius: 60px; /*給遮蓋物設定圓角效果,如果radius=元素寬度*1/2 ,則此時元素就成一個圓形*/border-width: 60px;display: inline-block;border: 60px solid rgba(0, 0, 0, 0.7);-moz-box-sizing:border-box; /*以border-box方式計算容器的寬高*/-webkit-box-sizing:border-box;box-sizing:border-box;opacity:1; /*設定遮蓋物為不透明的*/visibility:visible; /*設定遮蓋物是可見的*/-moz-transform:scale(4); /*將遮蓋物放大4倍尺寸*/-webkit-transform:scale(4);-o-transform:scale(4);-ms-transform:scale(4);transform:scale(4);-moz-transition:all 0.4s ease-in-out; /*一旦遮蓋物屬性發生變化時,進行平滑動畫過度*/-webkit-transition:all 0.4s ease-in-out;-o-transition:all 0.4s ease-in-out;-ms-transition:all 0.4s ease-in-out;transition:all 0.4s ease-in-out;}

 

如果大家對上面這些屬性不是太瞭解的話,可以關注我的其他博文,裡面會有詳細講解。此時我們再看一下運行效果:

遮蓋物已經呈現半透明狀態,並且已經完全遮蓋住照片,在上面的樣式中我們定義了 transition:all 0.4s ease-in-out; 這個是什麼意思呢?

它其實是說,當.mask元素的樣式發生變化時,以先快後慢的動畫效果實現.mask樣式屬性的變化。

好了,當滑鼠划過照片時,我們重新調整.mask屬性樣式:

.photoview:hover .mask { /*當滑鼠划過照片時,將遮蓋物設為透明,且border設為0,將遮蓋物隱藏*/opacity: 0;border:0px solid rgba(0,0,0,0.7);visibility:hidden;}


至此,代碼編寫完了,現在我們看一下划過的效果吧:

 

歡迎大家加入互連網技術交流群:62329335 

個人申明:所分享博文,絕對原創,并力爭每一個知識點都通過實戰示範來進行驗證。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.