我的目標是在鼠標懸停時將圖像製作爲新維度的動畫,並臨時添加一個新的css類,並將其返回到原始圖像在鼠標移出時尺寸(並刪除添加的類)。懸停時'jQuery'展開'和'合同'圖像 - '合同'失敗
我的代碼在鼠標懸停時工作正常。在鼠標移出時,添加的類將被刪除,但圖像尺寸不會恢復到原始寬度和高度。
HTML:
<img src='img.jpg' alt='' class='pulse'>
的jQuery:
$(function() {
// set global img width and height
var width_pulse_img = 0;
var height_pulse_img = 0;
$('img.pulse').hover(function() {
// onMouseOver: read original width and height on FIRST mouseover
if (!width_pulse_img) width_pulse_img = $(this).css('width');
if (!height_pulse_img) height_pulse_img = $(this).css('height');
// set img expansion ratio and compute new dimensions
var float_exp = 1 + 0.1;
var ww = (float_exp*parseInt(width_pulse_img, 10)).toString();
var hh = (float_exp*parseInt(height_pulse_img, 10)).toString();
// animate to new dimensions
$(this).addClass('hover').stop().animate({
width: ww + 'px',
height: hh + 'px'
}, 200);
}, function() {
// onMouseOut: animate back to original dimensions:
$(this).removeClass('hover').stop().animate({
// THIS IS THE PART THAT DOES NOT WORK
width: width_pulse_img + 'px',
height: height_pulse_img + 'px'
}, 400);
});
});
我已經測試在Firefox 12.0,Chrome和IE 9.0和行爲是相同的。
這是一個jsFiddle顯示問題。任何幫助將不勝感激。
檢查這個http://jsfiddle.net/joycse06/z6zvg/1/,使用'.WIDTH()'和'.height()'代替'.css(...'做的竅門。 –
@Joy:太好了,謝謝。仍然不明白爲什麼它會失敗。無論如何,請發表您的評論作爲答案,我會將其標記爲已接受。 – Stefan
檢查我的更新答案,找出爲什麼你的失敗。 –