在 jQuery 中悬停时停止并重新启动动画

发布于 2024-10-22 00:21:14 字数 485 浏览 7 评论 0 原文

我正在尝试使用 jQuery 创建一个动画按钮,该按钮应在悬停时停止,然后在未悬停时重新启动。

对于动画,我使用的循环如下所示:

$(document).ready(function test() {
        $('#box').animate({opacity:0.5}, {duration:750})
        .animate({opacity:1}, {duration:1500})
        .animate({opacity:0.5}, {duration:750, complete: test})
        ;
    });

我尝试使用 .stop() 添加悬停,但是,我不知道如何重新启动动画。您有什么建议吗?

另外,我在这里有一个小例子: http://jsfiddle.net/fTpZZ/

I'm trying to create an animated button using jQuery that should stop on hover and then restart when it's not hovered.

For the animation I'm using a loop that looks like this:

$(document).ready(function test() {
        $('#box').animate({opacity:0.5}, {duration:750})
        .animate({opacity:1}, {duration:1500})
        .animate({opacity:0.5}, {duration:750, complete: test})
        ;
    });

And I tried adding a hover with a .stop() but, then I don't know how to restart the animation. Do you have any suggestions?

Also, I have a little example of this here: http://jsfiddle.net/fTpZZ/

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

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

发布评论

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

评论(2

幽蝶幻影 2024-10-29 00:21:14

href() 事件处理程序可以分别将 handlerIn 和 handlerOut 方法作为第一个和第二个参数进行处理。

hide( handlerIn(eventObject), handlerOut(eventObject) )

创建 2 个独立的函数——一个用于“on”状态,一个用于“off”状态

.hover() - jQuery API

the hover() event handler can handle a handlerIn and handlerOut method as the first and second arguments, respectively.

hover( handlerIn(eventObject), handlerOut(eventObject) )

Create 2 separate functions--one for the "on" state, and one for the "off"

.hover() - jQuery API

智商已欠费 2024-10-29 00:21:14

工作解决方案:(http://jsfiddle.net/fTpZZ/50/)

$(document).ready(function()
    {
        $('#box').hover(function() {                   
            $('#box').stop();
            $('#box').animate({opacity:0},1);
        });

        function foo()
        {
            $('#box').animate({opacity:0.5}, 750, function(){
                $('#box').animate({opacity:1}, 1500, function(){
                    $('#box').animate({opacity:0.5}, 750, foo());    
                });
            });             
        }

        foo();          
    });

Working solution: (http://jsfiddle.net/fTpZZ/50/)

$(document).ready(function()
    {
        $('#box').hover(function() {                   
            $('#box').stop();
            $('#box').animate({opacity:0},1);
        });

        function foo()
        {
            $('#box').animate({opacity:0.5}, 750, function(){
                $('#box').animate({opacity:1}, 1500, function(){
                    $('#box').animate({opacity:0.5}, 750, foo());    
                });
            });             
        }

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