其實我也不知道這個效果到底叫什麼 = =

可以點這看我做完的 demo

  x3

 

暫時叫他"浮動圖片說明文字"好了

為了SEO再多唬爛幾個 "image tip"、"圖片說明"、"往上"

好了,耍完白癡

會做這個起因就是今天主管跟我說行銷部門下個月有提一個案子,叫我研究看看做法 

然後丟了一個網頁給我 

http://www.appguru.com.tw/appguru/camp/windowsapp/useful.php

就是要做那種效果 

一開始長這樣

x1  

  mouseover 後 (mouseout再縮回去) 

但因為氣泡現象的關係,所以我用JQuery的 mouseenter + mouseleave

x2  

 

我有稍微看了一下他的原始碼但是沒有細看......

因為自己寫出來比較好玩 XD

先貼最後的 code 再來講研究的心路歷程好了

首先引用JQuery,但都出到1.9了為何我還引用1.8..... = =

原因是因為IE 對css height跟其他瀏覽器不一樣,只好判斷瀏覽器微調

而JQuery 1.9 不支援 $.browser了.......

反正只是練習 

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script> 

CSS

   
   .main {
      float:left;
	  overflow:hidden;
	  position:relative;
   }
   .main,.sub {
      width:150px;
	  height:135px;
   }
   .sub {
	  background-color: #67A6E4;
	  color: #FFFFFF;
      filter:alpa(opacity=80);   
      filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100,FinishOpacity=70, Style=3, StartX=0, FinishX=100, StartY=0,FinishY=16); 
      -moz-opacity:0.7;          
      opacity:0.7;               
	  padding:5px;  
	  overflow:hidden;
      height:15px;
	  *height:24px;
	  position:absolute;
	  bottom:0;
   }

HTML就這樣

<div style="background-image:url('doraemon150.jpg');" class="main">
    <div class="sub">
        111 <br />
        222 <br />
        333 <br />
        44 <br />
    </div>
</div>
<div style="background-image:url('doraemon150.jpg');" class="main">
    <div class="sub">
        555 <br />
        666 <br />
        777 <br />
        888 <br />
    </div>
</div>

JS

   
   $(document).ready(function(){
      $(".main").mouseenter(function(){	
		 var obj = $(this).find(".sub");
		  if ($.browser.msie){
		     hi = 0;
		  } else {
		     hi = 5;
		  }	  
	      obj.animate({
		     height: $(this).height() - hi
		  }, 1000, function(){
		     
		  });		     	  
	  }).mouseleave(function(){
	      var obj = $(this).find(".sub");
		  obj.stop();
		  var hi = 0;
		  if ($.browser.msie){
		     hi = 24;
		  } else {
		     hi = 15;
		  }
	      obj.animate({		     
		     height: hi
		  }, 1000, function(){
		     		  
		  });	     
	  });
   });

JS這樣就寫完了,又是在騙文章數

完整的程式碼可以到這自己檢視原始檔

http://www.socute.somee.com/test2.html

 

以下為心路歷程,可以不用參考

====================================================

然後我一開始在做的時候碰到了瓶頸 = =

我原本是想在圖片上面疊個 div 然後用animate去調高 div 的高度

但是我發現一個很機車的問題,那就是如果你的div 是用position:absolute去定位的話

他會去參考你上一層的定位,如果參考不到就會參考window 0的位置

然後你用animate 去跑 height 時,就會發生div是"從上往下長高"

因此後來把父項目改為 position:relative,然後子項目 position:absolute 加上 bottom:0px 就搞定了

(意思就是以bottom:0px 的位置為參考點) 然後透過animate div 就會往上長了

 

最後的版本是用 overflow:hidden 把不顯示的內容先暫時藏起來

mouseenter 的時候再用 animate 跑出來

 

 

 

arrow
arrow
    全站熱搜

    小雕 發表在 痞客邦 留言(0) 人氣()