これは本当に単純なVanillaDOMアプローチです。これには、target
(メニュー項目の)IDを持つ要素とID'ドロップダウン'を持つ要素が必要です。
これはグローバルな古いスタイルの「on」ハンドラーを使用することに注意してください。これはおそらくベストプラクティスではありません(使用する必要がありますaddEventListener
)が、これによりコードがもう少し読みやすくなると思います:)
ここでjsFiddleも設定しました
var target = document.getElementById('target');
var dropdown = document.getElementById('dropdown');
var curEl;
document.onmousemove = function(e) {
e = e || window.event;
curEl = e.target || e.srcElement;
}
target.onmouseover = function(e) {
setTimeout(function() {
if (curEl === target || curEl === dropdown) {
dropdown.style.display = "block";
} else {
dropdown.style.display = "none";
}
}, 300);
}
target.onmouseout = dropdown.onmouseout = function() {
setTimeout(function() {
if (curEl !== target && curEl !== dropdown) {
dropdown.style.display = "none";
}
}, 300);
}