代码之家  ›  专栏  ›  技术社区  ›  jcuenod

jQuery效果onUnload

  •  1
  • jcuenod  · 技术社区  · 15 年前

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

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

    想到的一个选项是有效地劫持页面关闭函数,将其存储在某个变量中,然后在运行效果后执行它,但我不知道该如何执行。

    任何建议或备选方案都是非常受欢迎的。

    7 回复  |  直到 14 年前
        1
  •  2
  •   Community Jaime Torres    7 年前

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

    我觉得你在这件事上不会有什么好运气。

        2
  •  4
  •   Jonathan Fingland    15 年前

    您要查找的是OnBeforeUnload事件。
    不过只是个警告…应该是 真的? 快…或者你的访客可能会讨厌它,不管它看起来有多酷。

    关于阻止页面在动画完成之前离开,这是一个更大的问题…任何动画都将依赖于setTimeout/setInterval,页面在离开之前都不会等待这些动画完成。

        3
  •  3
  •   Magnar    15 年前

    当用户要求关闭窗口时,除了关闭窗口之外,其他任何操作都会破坏与用户的合同。浏览器窗口不是你的,它是用户的,无论效果有多酷,它都不可避免地会让你的大多数用户恼火。

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

        4
  •  1
  •   balexandre    15 年前

    为什么不, 而不是 当一个用户 想离开 从您的网站(即使用户关闭浏览器/选项卡,卸载事件也会被激发)并用它来骚扰简单用户…阻止他/她再次回来…

    这样做 “酷”效应 当用户访问您的网站时 第一次?作为一种正常的导入效应?

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

        5
  •  1
  •   Community Jaime Torres    7 年前

    我完全同意 Jonathan Fingland's answer 并添加这个。

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

        6
  •  1
  •   Luke H    14 年前

    您可能会发现,通过Ajax加载新内容可以更好地控制效果和转换,并减少因试图以这种方式劫持浏览器操作而给用户带来的麻烦因素。

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

        7
  •  0
  •   alex    14 年前

    我找到的唯一延迟关闭窗户的方法就是使用警报。如果这对您的情况是一个可以接受的折衷方案,它将真正延迟内存中的窗口破坏,并允许您的页面计时器执行(当然,如果用户在动画完成之前没有关闭警报弹出窗口)。

    我最近使用了这种方法,这样我就可以通过fabridge调用一个flex方法(否则在flex方法调用完成之前就会被销毁)。我想听听你对此事的看法。