2011-01-25 34 views
0

我有一个应用程序,它可以放大图像focus()并缩小在blur()。我已经读了原始图像的大小,并添加了15px为了创建放大效果,这很好。问题是缩小效果,我试图将我读取的原始图像尺寸传递给.blur(),但没有运气。任何人都可以帮我解决这个问题吗?问题.blur函数使用jquery

+1

转到您的演示,并粘贴您的CSS,HTML和jQuery代码在由jsFidle给出的适当的编辑器。 – Vivek 2011-01-25 08:41:41

回答

1

Here is a working demo以下代码。

首先,你不是叫你.blur()功能上orgWorgH$.data()方法。另外,我改变了你的.blur()功能有类似的实现你的.focus()功能,以获得变焦出门上班:

$('button:has(img)').blur(function() { 

    if (timer !== null) clearTimeout(timer); 

    var $image = $(this).find('img'); 

    $image.each(function() { 
     $(this).animate({ 
      'width': $.data(this, 'orgW') + 'px', 
      'height': $.data(this, 'orgH') + 'px', 
     }, 500); 
    }); 

}); 
+0

嘿谢谢很多:)你的代码帮了我很多 – rashmi 2011-01-25 11:20:28

1

您还可以在动画功能使用'+=15''-=15'。无需存储宽度和高度。

$('button:has(img)').focus(function() { 
    $(this).find('img').animate({ 
     width: '+=15', 
     height: '+=15' 
    }, 500); 
}); 

$('button:has(img)').blur(function() { 
    $(this).find('img').animate({ 
     'width': '-=15', 
     'height': '-=15' 
    }, 0); 
}); 

Demo

编辑:现在它应该工作。

+1

你的演示会减少每个blur()的宽度,但我不知道为什么。在Chrome 9中测试过。 – mVChr 2011-01-25 10:55:45