【发布时间】:2015-11-22 10:40:16
【问题描述】:
简介
我正在使用 Semantic-UI 的侧边栏功能,它为您提供了一个按钮,可以触发从左侧推送内容的侧边栏(在本例中)。
我想通过将鼠标悬停在左侧来展开相同的侧边栏。我意识到有几种方法可以做到这一点(就像这些经常做的那样。也许只检查鼠标的 X 位置就可以了,但这不是重点);我选择在左侧创建一个透明的 div 并使其 :hover 伪类来触发侧边栏:
// create sidebar and attach to menu open
$('.ui.sidebar').sidebar('attach events', '.toc.item');
// hover transparent div to trigger the sidebar too:
$('.sidebar-trigger').hover(function() {
$('.ui.sidebar').sidebar('show')
});
// hide() and show() the sidebar accordingly to use the sidebar:
$('.ui.sidebar').sidebar('setting', {
onShow: function() {
$('.sidebar-trigger').hide();
},
onHidden: function() {
$('.sidebar-trigger').show();
}
});
问题
现在,这一切都有效,除了一种情况:当您在边栏打开时不停地移动鼠标。我查看了$(document).on('transitionend', function(event) { ... },该鼠标有效地阻止了过渡完成。
资源
我在.sidebar-trigger 上放了一个蓝色背景,并制作了一个小视频/gif,以便更清晰。
我像一个疯狂的生物一样移动鼠标,但使用自然手势也会出现问题。
我在这件事上使用 Semantic-UI 的指南:http://semantic-ui.com/modules/sidebar.html#/settings(我也尝试过 onVisible 和 onHide,但没有成功)
这是一个运行 Chrome 45.0.2454.101(64 位)的 OSX Yosemite 10.10.3
【问题讨论】:
-
jsfiddle.net/1amus8q9/16这是您要找的吗?
-
不:(它在你的机器上工作吗?我的意思是,在鼠标展开时移动鼠标......如果我这样做,按钮在我停止鼠标之前不起作用。同样的问题。我认为这是一个 OSX Chrome 错误,我必须找到另一种方法来达到相同的效果。有效的想法?
-
我相信这可能是您需要的:jsfiddle.net/g8xbcm0u 答案在下面,并附有详细信息。
标签: javascript jquery html css