使用jquery的.blur函数的问题

时间:2011-01-25 08:35:18

标签: jquery jquery-effects

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

2 个答案:

答案 0 :(得分:1)

Here is a working demo以下代码。

首先,您没有在$.data()函数的orgWorgH上调用.blur()方法。另外,我已将您的.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);
    });

});

答案 1 :(得分: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

编辑:现在应该可以了。