使用 jquery 的 .blur 函数出现问题

发布于 2024-10-14 06:58:53 字数 178 浏览 6 评论 0原文

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

I have an application which zooms in image on focus() and zooms out on blur(). I have read the original image size and added 15px to it in order to create the zoom in effect, which works fine. The problem is with the zoom out effect where I'm trying to pass the original image size that I have read to .blur() but with no luck. Could any one help me solve this issue?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冷情妓 2024-10-21 06:58:53

这是以下代码的工作演示

首先,您没有在您的 .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);
    });

});

Here is a working demo of the following code.

First, you weren't calling the $.data() method on orgW and orgH in your .blur() function. Also, I've altered your .blur() function to have a similar implementation to your .focus() function in order to get the zoom out to work:

$('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);
    });

});
不弃不离 2024-10-21 06:58:53

您还可以在动画函数中使用'+=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);
});

演示

编辑:现在它应该可以工作了。

You can also use '+=15' and '-=15' in the animation function. No need to store width and height.

$('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

EDIT: Now it should work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文