events - MooTools – 单击 anchor 将类添加到页面,并延迟加载 anchor 链接

标签 events click mootools delay addclass

我使用 MooTools 在单击导航菜单中的链接时向正文添加两个类,这会触发页面的动画 CSS 淡入淡出。

我想延迟链接加载新页面,直到添加类并再延迟 2 秒让动画发生。

我的代码如下。我的尝试是向链接添加一个单击事件,这会添加类。我使用 evt.stop 来停止新页面加载,这允许添加类并随后触发动画,但这会阻止链接完全将您带到新页面。

如何调整此代码以允许链接正常工作,但如上所述延迟?

<nav id="main-nav">
  <ul>
    <li><a href="/page1.php">Page 1</a></li>
    <li><a href="/page2.php">Page 2</a></li>
  </ul>
</nav>    

$$('.page #main-nav li a').addEvent('click', function(evt) {
  evt.stop();
  $(document.body).addClass('animated fadeOut');
});

最佳答案

你可以这样做:

$$('#main-nav li a').addEvent('click', function(evt) {
  evt.stop();
  // will break if clasList pr goes in if you do two in 1 string
  $(document.body).addClass('animated').addClass('fadeOut');
  // already extended.

  // should still use addEvent but declare animationend as a native one (type 2)
  // also, depends on browser, there needs to be detection for the right event name (prefix).
  document.body.addEventListener("animationend", function(){ 
    // at animation end, http://mootools.net/forge/p/cssevents for vendor shit
    window.location = evt.target.href; // simulate clicking on the a element
  }, false);

  // or at arbitrary time
  // setTimeout(function(){
  //  window.location = evt.target.href;
  // }, 2000);
});

关于events - MooTools – 单击 anchor 将类添加到页面,并延迟加载 anchor 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20471993/

相关文章:

dom - Safari 扩展 beforeload 事件文档

sql - 是否首选在SQL事件中使用结束时间或持续时间?

internet-explorer-7 - IE 7 CTRL + 单击打开一个新窗口 - 如何抑制它?

mootools |覆盖补间的属性而不每次都创建新的补间

javascript - Y.Node addTarget 事件不冒泡

java - event.consume()之后如何退出EventHandler?

jquery - 全屏覆盖单击任意位置即可关闭与覆盖内文本链接的冲突

android - Phonegap 中的快速点击按钮

javascript - Mootools 使用 "Function"方法扩展 "extend"类,使 jQuery 不可用

javascript - Google JS API 是否与 JQuery 或 Mootools 发生冲突?