2009-12-07 90 views
5

我一直在網上搜索一段時間,試圖找到最好的方式來編寫一個jquery腳本來完成這個簡單的任務:在優雅的淡入淡出效果上懸停圖像。我發現有很多的解決方案(某種方式繁瑣和笨重),並把範圍縮小到我所看到的最好的兩個:jquery hover image fade swap

http://designwoop.com/2009/08/image-hover-effect-using-jquery-tutorial/

http://bavotasan.com/tutorials/creating-a-jquery-mouseover-fade-effect/

對於我而言,我希望能夠做這個懸停在一頁上多次交換。該頁面是http://www.vitaminjdesign.com。我目前有懸停在我的「服務導航」(不同類型的懸停),但我想將它們應用到所有的導航按鈕,以及在頁腳的社會圖標。所有的盤旋都是相同的 - 兩個圖像文件,一個在盤旋時消失,另一個在休假時返回。什麼是最好的方式去做這件事?上面的鏈接之一可能嗎?

回答

6

您也可以使用單個背景圖像完成此操作,並在&中淡出透明div。這裏有一個簡單的例子,它可以擴展爲一個類圖像的自動工作:demo-one

UPDATE:

$(document).ready(function() { 
    $("#mask-div") 
     .css({ 
      "position": "absolute", 
      "width": 275, 
      "height": 110, 
      "background": "rgba(255, 255, 255, 0.5)" 
     }) 
     .mouseover(function() { 
      $(this).fadeOut("slow"); 
     }) 
    ; 
    $("#test-img").mouseout(function() { 
     $("#mask-div").fadeIn("slow"); 
    }); 
}); 

運行演示可以在jsbin可以看到這裏是一個更通用的解決方案(不完整的,但顯示了一些想法):demo-two。只需將類「fade-img」添加到任何想要獲得此效果的圖像即可。

$(document).ready(function() { 
    $(".fade-img") 
     .before("<div class='fade-div'></div>") 
     .each(function() { 
      var img = $(this); 
      var prev = img.prev(); 
      var pos = img.offset(); 

      prev.css({ "height": img.height(), "width": img.width(), "top": pos.top, "left": pos.left }) 
       .mouseover(function() { 
        $(this).fadeOut("slow"); 
       } 
      ); 
     }) 
     .mouseout(function() { 
      $(this).prev().fadeIn("slow"); 
     }) 
    ; 
}); 
1

$(document).ready()

$('.imgbuttonclass').hover(function(){ 
    $(this).animate({ 
     backgroundImage: 'img2.png' 
    },500); 
},function(){ 
    $(this).stop(true).animate({ 
     backgroundImage: 'img1.png' 
    },500); 
}); 

編輯

如果你只是想這樣做:http://designwoop.com/2009/08/image-hover-effect-using-jquery-tutorial/

然後使用jthompson的回答或者只是使用代碼從該網頁。如果你要使用兩個單獨的圖像,你可能想看看這個:

http://peps.ca/blog/easy-image-rollover-script-with-jquery/

demo

它的作用是

它看起來整個文檔對於任何 「img」或「輸入」標籤,其類別爲 「ro」。翻轉圖像需要爲 ,與正常圖像命名相同,但 末尾帶有「_o」。例如,「image.gif」的 翻轉圖像將爲 「image_o.gif」。在找到所有 圖片標籤後,該腳本會預加載所有 翻轉圖像和廣告 「mouseover」和「mouseout」事件。

+0

這將如何工作,爲多張圖片?我不會每次都重複一遍嗎? – JCHASE11 2009-12-07 04:47:07

+0

這給出了多個圖像和淡入淡出效果,這似乎是我的最佳答案。第二個解決方案似乎更好,因爲它支持多個懸停圖像效果,但不包括淡入淡出。任何想法如何添加? – JCHASE11 2009-12-07 15:19:13

4

我選擇在您提供的第二個鏈接的解決方案。它簡短,乾淨,簡單。

  • 恰好比其他(CSS與z-index
  • 懸停褪色的圖像具有更高的z-index0
  • 透明度這使其透明,你會看到創建兩個<img>標籤
  • 放置一個底層圖像
  • 當懸停結束時,將不透明度再次淡化爲1

完成

+0

我試過這個,它不適用於多個圖像。因爲它們絕對定位,所以我無法分離圖像。這一切都躺在彼此之上。我嘗試過,但無法將這種方法用於我的使用。 – JCHASE11 2009-12-07 15:45:05

+0

它可以工作,如果你把另一個容器放在它們周圍並且定義它的大小 – Christian 2016-09-29 10:06:58