2012-12-11 106 views
0

我想知道如何能夠通過jQuery修改應用於元素懸停狀態的現有樣式。修改CSS應用於懸停狀態

例如:

.button { color:red; } 
.button:hover { color:blue; } 

我想風格font-size:14px;適用於.button:hover。 font-size的值將根據用戶之前與之交互的頁面上的其他元素而有所不同。

+1

修改......在哪裏?將它添加到.button:hover css是不是我所假設的問題? – Jason

+2

爲什麼使用jQuery來做到這一點?改用css。 – Jai

回答

4

您不能使用JavaScript修改:hover樣式(或任何其他僞類),因爲從技術上講,它們不是DOM的一部分。

你需要做的是將這些樣式添加到CSS中的不同類,然後使用JavaScript/jQuery添加/刪除該類。

CSS:

.button.bigger { font-size:14px; } 

的jQuery:

$('.button').on('hover', function(e) { 
    $(this).toggleClass('bigger'); 
}); 
+0

很酷,謝謝。我喜歡這種方法。 – Jon

+0

一如既往,請記住,您的懸停樣式不適用於觸摸屏設備。 – Blazemonger

+0

那沒關係。我只是建立桌面:) – Jon

1

添加一些class和id您button..target使用jQuery,並添加CSS它。

例如

$('.buttonToBeChanged').on('hover',function(){ 
    $(this).css('font-size',14); 
}); 

應該這樣做。請參閱此以供參考。 http://api.jquery.com/css/

編輯:代碼將字體設置爲14px之後。即使在盤旋之後。爲了給它一個切換效果,請使用@Blazemonger的答案。這很好。或者你可以使用的mouseenter鼠標移開事件

再次編輯 - CSS也會獨自完成這項工作作爲@Jai提及。

.button:hover { color:blue; font-size:14px;} 
+1

適用於mouseenter,但不適用於mouseleave – Jason

+2

'hover'可能需要2個函數作爲參數。在這種情況下,它是'mouseenter'和'mouseleave'的縮寫。如果你只傳遞一個函數,它會將相同的函數附加到'mouseenter'和'mouseleave'。 –

+0

這就是對的!絕對。我只是展示了一種方式。現在答案已被編輯以回答所有查詢。 –

1

您將需要要麼使jQuery的事件處理程序或使CSS一類特定的懸停。

這是兩者的工作示例:

http://jsfiddle.net/dboots/GHzSs/

JS:

$('#large').hover(function(e) { 
     var t = $(this); 
     t.css('fontSize', '14px'); 
}, function(e) { 
     var t = $(this); 
     t.css('fontSize', '11px'); 
});​ 

HTML:

<div class="button">Regular Button</div> 
<div class="button large">Large Button (by class/css)</div> 
<div class="button" id="large">Large Button (by id/jquery)</div>​ 

CSS:

.button { 
    padding: 5px; 
    border: 1px solid #999999; 
    width: 250px; 
    margin: 5px 0; 
} 

.button:hover { 
    border: 1px solid #000000; 
} 

.large:hover { 
    font-size: 14px; 
} 
2

這個怎麼用CSS:

.button:hover { color:blue; font-size:14px;} 

和使用jQuery:

$('.button').hover(function(){ 
    $(this).css({"font-size":"14px"}); // increases on mouseover 
},function(){ 
    $(this).css({"font-size":"12px"}); // decreases on mouseout 
});