Jquery效果Onunload

时间:2009-06-17 12:27:37

标签: javascript jquery effect onunload

当用户离开页面时,我想使用jquery slideUp效果,只是为了让页面在关闭时看起来很酷。

我假设我应该使用onunload事件但是如何延迟页面关闭足够长的时间以使效果运行完成。

想到的一个选项是有效地劫持页面关闭功能,将其存储在某个变量中,然后在我运行效果后执行它但我不知道我会怎么做。

非常欢迎任何建议或其他想法

7 个答案:

答案 0 :(得分:4)

你正在寻找的是onbeforeunload事件 只是警告......它应该 真的 快......或者你的访客可能会讨厌它而不管它看起来有多酷

为了防止页面在动画完成之前导航,这是一个更大的问题......任何动画都将依赖于setTimeout / setInterval,页面将不会等待那些在离开之前完成。

答案 1 :(得分:3)

当用户要求关闭窗口时,不做任何事情就是与用户签订合同。浏览器窗口不是你的,它是用户,无论效果有多酷,它都会不可避免地惹恼你的大多数用户。

onbeforeunload事件的功能非常有限。它必须返回一个字符串,然后用于提示用户确认离开页面。它不适用于很酷的动画。

答案 2 :(得分:2)

据我所知,阻止用户离开页面的唯一方法是onbeforeunload事件,可取消。相反,您从该方法返回一个字符串,浏览器会提示用户使用是/否对话框,生活会继续。 276660有更多相关信息。

我认为你不会对这个运气好运。

答案 3 :(得分:1)

当用户简单想要从您的网站离开时,

为什么不呢,而不是“酷”效果(即使用户关闭了浏览器/标签页unload事件将被解雇)并使用那个简单的用户烦恼...阻止他/她再次返回...

当用户第一次访问您的网站时

... 执行“酷”效果 ?作为正常的介绍效果?

我这样做是一个简单的想法,你可以在这里看到它:http://www.balexandre.com/jmfc

答案 4 :(得分:1)

我同意100%与Jonathan Fingland's answer同意,并添加此内容。

在IE中,(我不确定哪些版本支持这个,我知道IE6确实如此)你可以在离开页面时使用一些propriety meta tags to achieve fades等。但是,这在浏览器中是有限的(仅限IE),因此您无法跨浏览器使用。

答案 5 :(得分:1)

您可能会发现通过AJAX加载新内容可以让您更好地控制效果和过渡,并减少用户的烦恼因素,这可能是因为尝试以这种方式劫持浏览器操作。

我会考虑使用上面提到的滑块形式(例如参见http://webdesignledger.com/tutorials/13-super-useful-jquery-content-slider-scripts-and-tutorials), 或者只是加载内容窗格以响应用户点击。

答案 6 :(得分:0)

我发现延迟窗口关闭的唯一方法是使用警报。如果这对你的案例来说是一个可接受的妥协,那么它将真正延迟内存中的窗口销毁,并允许你的页面计时器执行(当然,如果用户没有在你的动画最终确定之前关闭警报弹出窗口)。

我最近使用了这种方法,因此我可以通过FABridge调用flex方法(否则会在flex方法调用完成之前销毁)。我想听听你对此的评论。