您可以例如使用jQuery的data()
方法來存儲圖像的原始大小,並將其用於focus
和blur
事件處理程序。像這樣:
// cache size
$('button img').each(function(i, img) {
$(img).data('size', {
'width': $(img).width(),
'height': $(img).height(),
});
});
// on focus
$('button:has(img)').focus(function() {
var $image = $(this).find('img'),
size = $image.data('size');
$image.stop().animate({
'width': (size.width + 15) +'px',
'height': (size.height + 15) +'px',
}, 500);
});
// on blur
$('button:has(img)').blur(function() {
var $image = $(this).find('img'),
size = $image.data('size');
$image.stop().animate({
'width': size.width +'px',
'height': size.height +'px',
}, 1);
});
這裏的your demo edited,我想它應該是這樣工作的吧?我已經刪除了超時值,並使用stop()
代替,因爲這就是您想要超時實現的目標嗎?
你最後的例子似乎只能縮小焦點上的幾個像素?另外,請在jsfiddle中分割JS/CSS/HTML。閱讀起來非常容易。乾杯! – polarblau 2011-01-25 09:04:59