介绍
我正在使用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
PS:似乎这可能是OSX Chrome的错误?