ひかりの備忘録

JavaScript と HTML と CSS で右クリックメニューを実装

JavaScript

id="contextmenu" がメニュー本体で、id="main" がメニューを表示する対象の部分。

const contextmenu = document.getElementById('contextmenu');
const main = document.getElementById("main");
main.addEventListener('contextmenu', (e) => {
    e.preventDefault();
    contextmenu.style.left = e.pageX + 'px';
    contextmenu.style.top = e.pageY + 'px';
    contextmenu.style.display = 'block';
});
main.addEventListener('click', () => {
    contextmenu.style.display = 'none';
});

HTML

<div id="contextmenu">
    <ul>
        <li>削除</li>
    </ul>
</div>

CSS

#contextmenu {
    display: none;
    position: fixed;
    left: 0;
    top: 0;
    border-radius: 8px;
    background-color: #F9F9F9;
    border: solid 1px #E3E3E3;
    padding: 4px;
    width: 192px;
}

#contextmenu ul{
    padding-left: 0;
    margin: 0;
}

#contextmenu li {
    cursor: pointer;
    margin: 0;
    padding: 4.75px 0 4.75px 16px;
    border-radius: 4px;
    list-style: none;
    font-size: 14px;
}

※クリックしたときのイベントと機能は別途作成する必要がある。