Jquery动画队列问题

发布于 2024-10-03 18:01:03 字数 647 浏览 4 评论 0原文

我的脚本有问题。动画一直在排队。我在你们的论坛中搜索了解决方案。我尝试了 stop(true,true) 及其一些变体以及queue:false。

也许我只是把它放在错误的位置,我还没有 100% 熟悉 jQuery。

该函数目前看起来像这样;

jQuery(document).ready(function($) {
    $('div.wp-caption').each(function(i) {

        var img_ = $('img', this);          
        var img_height = img_.attr('height');
        var p_height = $('p', this).outerHeight();

        $(this).height(img_height);

        $(this).hover(function()  { 
            img_.animate({marginTop : -p_height}, 500);
        },  function()  {
            img_.animate({marginTop : '0'}, 500);
        });                 
    });     
});

Having an issue with one my scripts. The animation keeps queueing up. I have searched your forums for solutions. I tried stop(true,true) and some variations of that as well as queue:false.

Maybe I just put it in the wrong spot, I'm not a 100% comfortable with jQuery just yet.

The function looks like this at the moment;

jQuery(document).ready(function($) {
    $('div.wp-caption').each(function(i) {

        var img_ = $('img', this);          
        var img_height = img_.attr('height');
        var p_height = $('p', this).outerHeight();

        $(this).height(img_height);

        $(this).hover(function()  { 
            img_.animate({marginTop : -p_height}, 500);
        },  function()  {
            img_.animate({marginTop : '0'}, 500);
        });                 
    });     
});

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

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

发布评论

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

评论(3

情深如许 2024-10-10 18:01:03

如果将 stop() 放在 .animate() 方法之前,应该可以正常工作:

$(this).hover(function()  { 
    img_.stop().animate({marginTop : -p_height}, 500);
},  function()  {
    img_.stop().animate({marginTop : '0'}, 500);
});

stop() should work just fine if you put it before the .animate() method:

$(this).hover(function()  { 
    img_.stop().animate({marginTop : -p_height}, 500);
},  function()  {
    img_.stop().animate({marginTop : '0'}, 500);
});
静待花开 2024-10-10 18:01:03

尝试清除动画队列:

            $(this).hover(function()  { 
                img_.stop(true, true).animate({marginTop : -p_height}, 500);
            },  function()  {
                img_.stop(true, true).animate({marginTop : '0'}, 500);
            });

true, true 参数告诉 jQuery 清除队列并跳转到动画末尾。

Try clearing the animation queue:

            $(this).hover(function()  { 
                img_.stop(true, true).animate({marginTop : -p_height}, 500);
            },  function()  {
                img_.stop(true, true).animate({marginTop : '0'}, 500);
            });

The true, true arguments tell jQuery to clear the queue and jump to the end of the animation.

梦冥 2024-10-10 18:01:03

尝试将 .stop() 放在 .animate 之前

$(this).hover(function()  { 
   img_.stop().animate({marginTop : -p_height}, 500);
},  function()  {
   img_.stop().animate({marginTop : '0'}, 500);
});

Try putting the .stop() before the .animate

$(this).hover(function()  { 
   img_.stop().animate({marginTop : -p_height}, 500);
},  function()  {
   img_.stop().animate({marginTop : '0'}, 500);
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文