当用户离开页面时,我想使用jquery slideUp效果,只是为了让页面在关闭时看起来很酷。
我假设我应该使用onunload事件但是如何延迟页面关闭足够长的时间以使效果运行完成。
想到的一个选项是有效地劫持页面关闭功能,将其存储在某个变量中,然后在我运行效果后执行它但我不知道我会怎么做。
非常欢迎任何建议或其他想法
答案 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方法调用完成之前销毁)。我想听听你对此的评论。