jQuery 在卸载前播放动画?

发布于 2024-12-08 18:37:06 字数 495 浏览 0 评论 0原文

我不确定这是否可能,但我真的希望如此。我有一个网站 http://www.sarahnwatson.com。它在页面加载时播放几个 jQuery 动画,我想知道在页面卸载时是否可以反向播放它们。

如果是这样,怎么办?这是我试图使其工作的代码,但它根本不起作用。

$(window).bind('beforeunload', function(e) {                
    $list.children().each(function(i, el) { // loop through the LI elements within $list
        $(el).delay(500 * i).animate({'left': '-300px'}, 1000);
    });

    return false;
});

相反,我只是得到一段对话。

I'm not sure if it's possible, but I am really hoping it is. I have a site at http://www.sarahnwatson.com. It has several jQuery animations playing when the page loads, I was wondering if I could do them in reverse when the page unloads.

If so, how? This is the code I am trying to make work, but it doesn't at all.

$(window).bind('beforeunload', function(e) {                
    $list.children().each(function(i, el) { // loop through the LI elements within $list
        $(el).delay(500 * i).animate({'left': '-300px'}, 1000);
    });

    return false;
});

Instead I just get a dialogue.

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

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

发布评论

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

评论(3

倾城月光淡如水﹏ 2024-12-15 18:37:06

您只能控制源自页面中链接的事件。考虑到这一点,您可以覆盖页面中所有链接的点击事件。

var goToURL = null;

$('a').click(function() {
   var goToURL = $(this).attr("href");
     $(el).delay(500 * i).animate({'left': '-300px'}, 1000, function() {window.location = gotoURL;});
     return false; // or e.preventDefault();
   }
});

You can only control events that originate from links in your page. With this in mind, you can override the click event of all links in your page.

var goToURL = null;

$('a').click(function() {
   var goToURL = $(this).attr("href");
     $(el).delay(500 * i).animate({'left': '-300px'}, 1000, function() {window.location = gotoURL;});
     return false; // or e.preventDefault();
   }
});
苍景流年 2024-12-15 18:37:06

我想你想卸载。

$(window).unload(function() {
  alert('Handler for .unload() called.');
})

I think you want unload.

$(window).unload(function() {
  alert('Handler for .unload() called.');
})
笑,眼淚并存 2024-12-15 18:37:06

不幸的是,像 onbeforeprint 这样的 onbeforeunload 并不在 W3C 标准 DOM 事件中,
来自 MDN:

没有公开规范。 onbeforeunload 是由
Microsoft IE 4,随后被其他浏览器复制。

无论如何,微软已记录了此事件。您可以通过关闭浏览器来调用此事件。但由于某种原因,此事件不会阻止非 IE 浏览器中的默认浏览器行为(关闭窗口或选项卡)。

这是一篇关于 unload 事件的好文章,位于 webkit 文档

Unfortunately onbeforeunload like onbeforeprint is not in W3C standard DOM events,
From MDN:

There is no public specification. onbeforeunload was introduced by
Microsoft IE 4 and has subsequently been copied by other browsers.

Anyway Microsoft have this event documented. You can invoke this event by closing the browser. But for some reason this event is not preventing default browser behavior(closing window or tab) in non-IE browsers.

Here is a good article about unload event at webkit docs

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