【发布时间】:2016-08-09 04:49:34
【问题描述】:
我正在使用这个名为 transit.js 的插件来创建一个简单的菜单动画,基本上我有以下菜单,见下文:
菜单的打开和关闭代码如下:
$('.main-header .nav-toggle-button').on('click' , function() {
// $('.main-header .navigation').toggleClass('show');
if ($('.main-header .navigation').hasClass('show')) {
$('.main-header .navigation').stop().removeClass('show');
return false;
}
$('.main-header .navigation').stop().transition({
perspective: '1000px',
rotateY: '180deg',
duration : 0
}, function() {
$(this).addClass('show').stop().transition({ rotateY: '0' });
});
return false;
});
DEMO HERE,(对不起,小提琴并没有重现这个问题。)
BUG:您可以在关闭时看到没有动画,菜单消失,现在当页面滚动超过
200px+及以下992px宽度,所以基本上当你点击 汉堡,菜单以旋转动画打开,但是当你 再次单击汉堡,菜单有时不会关闭,即使 'show' 类已从菜单中删除。
这是我无法理解的错误之一,在控制台中检查并浏览 JS 代码并没有真正帮助。
如果有人能指出我在这里做错了什么,我将不胜感激,因为 JS 和 CSS 看起来确实很完美,但使用传输的 css 转换无法按预期工作。
【问题讨论】:
-
@MarcosPérezGude 将 chrome 置于“移动模式”,你会得到有问题的汉堡包。
-
你假设我使用的是 chrome :),但是好的,我现在看到了(减小窗口大小)
-
这似乎是一个 Chrome 错误。菜单关闭后,只有在您在浏览器外部单击时才会消失,此时它会失去焦点。真奇怪。
-
是的,伙计们感谢您的热烈响应,这是 chrome 和 opera 的错误!没错,FF 工作正常:D
-
@AlexanderSolonik 你试过我的解决方法了吗?下面的答案?
标签: javascript jquery html css