2014-09-10 151 views
-4

我有3 <a>標籤在我的HTML和他們每個包含2個圖像。只顯示高分辨率圖像,其他圖像設置爲無。隱藏/取消隱藏圖像使用jQuery的懸停

我想隱藏灰度圖像,當我將鼠標懸停在grescale圖像上並顯示彩色圖像時。而當我懸停時,我想要彩色圖像再次隱藏。我如何使用jQuery來做到這一點?

<a class="mylink" href=""> 
    <img src="img/thumbnails/colored-1.jpg" class="color-image"/> 
    <img src="img/thumbnails/greyscale-1.jpg" class="greyscale-image"/> 
</a> 

<a class="mylink" href=""> 
    <img src="img/thumbnails/colored-2.jpg" class="color-image"/> 
    <img src="img/thumbnails/greyscale-2.jpg" class="greyscale-image"/> 
</a> 

<a class="mylink" href=""> 
    <img src="img/thumbnails/colored-3.jpg" class="color-image"/> 
    <img src="img/thumbnails/greyscale-3.jpg" class="greyscale-image"/> 
</a> 

.color-image 
{ 
    display:none 
} 
+0

爲最高upvoted回答說,你並不需要基於jQuery懸停控制CSS – Damian 2014-09-10 17:22:37

回答

4

爲什麼使用jQuery而不是純CSS?

您可以使用:懸停並切換圖像的顯示。

a.mylink:hover .color-image, 
a.mylink .greyscale-image { 
    display: inline; 
} 

a.mylink .color-image, 
a.mylink:hover .greyscale-image { 
    display: none; 
} 

在jQuery中,這只是

function swap(evt) { 
    var isOver = evt.type === "mouseenter"; 
    link.find(".color-image").toggle(isOver); 
    link.find(".greyscale-image").toggle(!isOver); 
} 

$("a.mylink").hover(swap, swap); 
+0

謝謝,但如果我想的過渡效果添加到它呢?我仍然可以在CSS中做到這一點? – Vahid 2014-09-10 17:24:44

+0

有CSS過渡 – epascarello 2014-09-10 17:29:20

+0

不幸的是,我卡住了我希望我能得到一個關於如何在jQuery中寫這個提示。 – Vahid 2014-09-10 17:33:15

2

NO jQuery的需要。使用:hover CSS僞上.myLink錨,如:

.color-image { 
    display:none; 
} 

a.myLink:hover .color-image { 
    display: block; 
} 

a.myLink:hover .greyscale-image { 
    display: none; 
} 
+0

謝謝你的工作。 – Vahid 2014-09-10 17:25:47

0

你可以用CSS這樣做:懸停。懸停在灰度圖像上,顯示:無,彩色圖像反色。當JS被禁用時,這有利於工作。否則,你可以看看jQuery UI的

1

我的方式:對

a[class="mylink"]:not(:hover) img[class*="greyscale"], 
a[class="mylink"]:hover img[class*="color"] { 
    display: inline-block; 
} 
a[class="mylink"]:not(:hover) img[class*="color"], 
a[class="mylink"]:hover img[class*="greyscale"] { 
    display: none; 
} 

這裏是一個演示的jsfiddle

http://jsfiddle.net/agaex70r/

這裏是另一個的jsfiddle與過渡。

http://jsfiddle.net/agaex70r/2/

+0

'a [class =「mylink」]:not(:hover)'Yikes – epascarello 2014-09-10 17:43:13

+0

@espascarello您還沒有聽說過這類類嗎? – Allan 2014-09-10 17:53:02

+0

這是過分的和昂貴的。這個例子中的所有選擇器都是有點矯枉過正的。 – epascarello 2014-09-10 17:54:10