我有几个 onmouseover 事件(javascript 函数和 jquery 手风琴的组合),但它们似乎对鼠标的确切位置过于敏感,以至于它很难触发和/或鼠标移出和关闭太容易功能(使得选择某些东西和/或无意中触发错误的功能变得非常困难)。我正在使用非常紧凑的布局,所以我无法增加元素之间的空间。
在不影响布局的情况下扩展将触发功能的区域或降低鼠标悬停元素周围的灵敏度的简单方法是什么?我尝试过使用边距和填充,但似乎没有帮助。
我在菜单中使用的 javascript 函数中包含了以下一个示例。
# HTML #
<a style="top:13px; left:43px; position:absolute; z-index:31" href="createaccount.html">Create Account </a>
<ul class="menu" style="top:2px; left:99px; position:absolute;">
<li><a style=" text-align: left;" href="createaccount.html" onmouseover="mopen('m1')" onmouseout="mclosetime()">▶</a>
<div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
<a href="mybody.html" style="top:-9px; left: 16px">Quick Start</a>
</div></li>
</ul>
# Javascript #
var timeout = 150;
var closetimer = 0;
var ddmenuitem = 0;
function mopen(id) {
mcancelclosetime();
if (ddmenuitem) ddmenuitem.style.visibility = 'hidden';
ddmenuitem = document.getElementById(id);
ddmenuitem.style.visibility = 'visible';
}
function mclose() {
if (ddmenuitem) ddmenuitem.style.visibility = 'hidden';
}
function mclosetime() {
closetimer = window.setTimeout(mclose, timeout);
}
function mcancelclosetime() {
if (closetimer) {
window.clearTimeout(closetimer);
closetimer = null;
}
}
document.onclick = mclose;
# CSS #
.menu div {
position: absolute; visibility: hidden; margin: 0px 0px 0px 7px; padding: 0; width: 120px; height:62px; background: black;}
.menu div a {position: relative; display: block; padding: 0px 0px 0px 0px; margin: -3px 0px 0px -9px; width: 105px; text-align: left; text-decoration: none; background: black; color: white; }