jQuery播放动画beforeunload?

时间:2011-10-08 00:36:04

标签: javascript jquery animation

我不确定是否可能,但我真的希望是这样。我在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;
});

相反,我只是进行对话。

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

我想你想要卸载。

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

答案 2 :(得分:0)

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

  

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

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

以下是关于webkit docs

unload事件的好文章