網頁設計人員都知道 HTML + CSS 是設計時不可或缺。但單純的靜態畫面不太能吸引瀏覽者的注意,所以得在搭配 JavaScript 來讓效果動起來。此次就用簡單的 jQuery 語法來讓原本單調的設計有不同的效果。
先準備個 HTML 內容:
檢視原始碼 HTML
1 2 3 4 5 6 7 8 9 10 11 | <body> <div class="abgne_tip_gallery_block"> <a href="#"><img src="images/m01.jpg" title="" alt="" /></a> <div class="caption"> <h2><a href="#" title="圖片來源-梅問題">圖片來源-梅問題</a></h2> <div class="desc"> ♣梅問題‧教學網【Minwt】♣ | 分享與記錄關於Photoshop教學、網頁教學、Wordpress教學、Flex教學、 Flash教學…等,也歡迎遇到以上任何問題都可到梅問題來找答案喔! | 數位攝影 </div> </div> </div> </body> |
接著就是各位設計人員熟悉的 CSS 部份:
檢視原始碼 CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | .abgne_tip_gallery_block { margin: 0; padding: 0; width: 450px; height: 250px; overflow: hidden; position: relative; } .abgne_tip_gallery_block img { position: absolute; border: 0; } .abgne_tip_gallery_block .caption { position: absolute; bottom: 0; width: 390px; /* .abgne_tip_gallery_block 的寬 - .caption 的左右 padding */ padding: 15px 30px 20px; cursor: pointer; color: #fff; background: url(images/1px_black.png) repeat; } .abgne_tip_gallery_block .caption h2 { margin: 0; padding: 0px 0px 15px; } .abgne_tip_gallery_block .caption h2 a { text-decoration: none; color: #fc6; } .abgne_tip_gallery_block .caption h2 a:hover { text-decoration: underline; } |
設計後的畫面就是一般很常見的照片加上標題及描述內容:
不過這樣一股腦的把描述內容都顯示出來的話,幾乎把正妹照都遮掉一大半了,最重要的下半身就看不到哩。所以筆者把整個描述的部份只顯示標題:
檢視原始碼 CSS
1 2 3 4 5 6 7 8 9 | .abgne_tip_gallery_block .caption { position: absolute; top: 195px; /* .abgne_tip_gallery_block 的高 - 想顯示 title 的高(這邊是設 55) */ width: 390px; /* .abgne_tip_gallery_block 的寬 - .caption 的左右 padding */ padding: 15px 30px 20px; cursor: pointer; color: #fff; background: url(images/1px_black.png) repeat; } |
所以就能看到...
嘿~可別以為筆者忘了最重要的描述內容的部份。目前雖然看不到,但筆者把它設計成當滑鼠移到圖片上時就能把其它部份展開來。
檢視原始碼 JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | $(function(){ // 預設標題區塊 .abgne_tip_gallery_block .caption 的 top var _titleHeight = 55; $('.abgne_tip_gallery_block').each(function(){ // 先取得區塊的高及標題區塊等資料 var $this = $(this), _height = $this.height(), $caption = $('.caption', $this), _captionHeight = $caption.outerHeight(true), _speed = 200; // 當滑鼠移動到區塊上時 $this.hover(function(){ // 讓 $caption 往上移動 $caption.stop().animate({ top: _height - _captionHeight }, _speed); }, function(){ // 讓 $caption 移回原位 $caption.stop().animate({ top: _height - _titleHeight }, _speed); }); }); }); |
這樣在瀏覽者未把滑鼠移入圖片前就是看到基本的標題,而滑鼠移入圖片後就能描述內容的多寡來決定要展開多少的部份囉。是不是加上一點點 JavaScript 就能讓原本的設計加分呢!?
您好,
我想詢問這個方法是否能跟KKBOX 的首頁那樣的效果呢?
有多個tab..?
你說的是 KKBOX 的那個效果?
啊,沒有說明到= = 真是不好意思..
http://tw.kkbox.com/info/jp_kr-index.html 上面他有專欄介紹
左邊向你上面的..但是右方的類似的tab?
要結合是一定可以的, 但就是 code 要寫多一點而已
就像是 http://tw.knowledge.yahoo.com/ 奇摩知識 那個div一樣
我怎麼沒看到什麼滑出的內容XD
奇摩的大概不是圖片展現,而是直接div的內容了吧..?
感謝你~~~教學很簡單就成功了
不過想請問一下,如果我想要在原本的說明框以外,再多加一個命名為caption2
讓滑鼠移動過去時,兩個說明框移動到不同的位置
我嘗試後發現,當網頁中只有一張照片時可以
但是有兩張照片以上時,說明框的移動會有錯誤
不曉得這樣子的功能要怎麼改程式碼比較正確呢??
如果是參考範例來做的話, 應該是可以滴~
不過真正的錯誤還是要看你的範例來知道問題在那
男丁老師您好
可以幫我看一下 我結合的範例嗎 在IE6 跟 IE7 第一頁總是沒有顯示左邊還似乎有點空白
網址:http://lli.tw/test/test.php
我看是正常..@@||
是否截個圖然後把有問題的地方圈起來給我看看...
疑 我用公司電腦IE6進去 第一頁看不到滑出敘述的小黑框 可是第二頁之後開始都有
在家裡用IETester 擬出 ie6 跟 ie7 都是一樣的問題呢
http://lli.tw/test/1.jpg
http://lli.tw/test/2.jpg
原來是下面的描述啊, 不過可以的話把這有問題的範例包成一包寄給我試試~
寄了 麻煩您了>"<
想請問一下若是我想將此效果改成網頁浮出來的效果
如這網站這樣
http://www.think-silly.com/main.html
我後面不想只放圖片
想可以放FLASH或是其他的相簿JAVA等等
是有可能的嗎?!
因為我研究了好久~實在是無法使他可以變成這樣!!!ORZ
浮出來是指滑上來嗎? 這應該設計好 css 後, 再利用動畫的方式來控制 top 等屬性
請問IE6無法為半透明圖片,而是變成全黑背景,有方法可以解決嗎? 謝謝