【发布时间】:2015-07-14 23:05:24
【问题描述】:
首先,我在http://www.romadev.com 上有一个动画菜单,我需要修复它。菜单使用 javascript/jQuery 和 CSS3 动画进行动画处理。
但问题是,当有人快速点击屏幕左上角的菜单按钮(即 3 次)以显示、隐藏和显示菜单时,之前的动画不会停止播放。
这会导致菜单项在最后几个项目仍然以动画方式退出时进行动画处理。
我尝试了多种方法,例如 .stop() 和 clearTimeout。但问题是我是设计师而不是铁杆程序员,因为我主要做 html、css 一点 php 以及一点 javascript 和 jQuery。
我搜索了很多示例,还发现 .stop() 仅适用于即 .animate() 并且还发现大多数人使用 clearTimeout,但我只是不知道如何实现它并获得clearTimeout 工作。所以我把我的代码改回原来的样子了。
这是我的菜单的代码:
$("#menu-toggle").click(function() {
// Menu SlideDown Animation
$("#primary-menu-container").toggleClass("primary-menu-container-visible");
// Menu Button Icon Animation
$("#menu-icon-top").toggleClass("menu-icon-top-active");
$("#menu-icon-middle-1").toggleClass("menu-icon-middle-1-active");
$("#menu-icon-middle-2").toggleClass("menu-icon-middle-2-active");
$("#menu-icon-bottom").toggleClass("menu-icon-bottom-active");
});
// Animate Menu Items
$("#menu-toggle").click(function() {
setTimeout(function() {
$("#home").toggleClass('menu-item-animation');
setTimeout(function() {
$("#over-ons").toggleClass('menu-item-animation');
setTimeout(function() {
$("#cases").toggleClass('menu-item-animation');
setTimeout(function() { // Do something after 3 seconds
$("#applicaties").toggleClass('menu-item-animation');
setTimeout(function() { // Do something after 3 seconds
$("#nieuws").toggleClass('menu-item-animation');
setTimeout(function() { // Do something after 3 seconds
$("#support").toggleClass('menu-item-animation');
setTimeout(function() { // Do something after 3 seconds
$("#contact").toggleClass('menu-item-animation');
}, 150);
}, 150);
}, 150);
}, 150);
}, 150);
}, 150);
}, 0);
});
因此,如果有人能帮助我指出正确的方向,那就太好了,因为我真的很想了解如何将 clearTimeout 用于此项目和其他项目。
真诚的,
克里斯蒂安
【问题讨论】:
-
能否将 JSFiddle 添加到工作示例中?
标签: javascript jquery css animation