File "code07.html"
Full Path: /home/analogde/www/Liens/liste/code07.html
File size: 4.05 KB
MIME-type: text/html
Charset: utf-8
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Listes avec menu contextuel</title>
<style>
.context-menu {
display: none;
position: absolute;
background-color: #fff;
border: 1px solid #ccc;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
z-index: 1000;
}
.context-menu ul {
list-style: none;
padding: 0;
margin: 0;
}
.context-menu ul li {
padding: 10px;
cursor: pointer;
}
.context-menu ul li:hover {
background-color: #f0f0f0;
}
.list-item-span {
display: inline-block;
padding: 5px;
cursor: pointer;
}
</style>
</head>
<body>
<h1>Listes avec menu contextuel</h1>
<h2>Liste 1 (10 éléments)</h2>
<ul id="list1">
<li><span class="list-item-span">Élément 1</span></li>
<li><span class="list-item-span">Élément 2</span></li>
<li><span class="list-item-span">Élément 3</span></li>
<li><span class="list-item-span">Élément 4</span></li>
<li><span class="list-item-span">Élément 5</span></li>
<li><span class="list-item-span">Élément 6</span></li>
<li><span class="list-item-span">Élément 7</span></li>
<li><span class="list-item-span">Élément 8</span></li>
<li><span class="list-item-span">Élément 9</span></li>
<li><span class="list-item-span">Élément 10</span></li>
</ul>
<h2>Liste 2 (4 éléments)</h2>
<ul id="list2">
<li><span class="list-item-span">Élément 1</span></li>
<li><span class="list-item-span">Élément 2</span></li>
<li><span class="list-item-span">Élément 3</span></li>
<li><span class="list-item-span">Élément 4</span></li>
</ul>
<h2>Liste 3 (7 éléments)</h2>
<ul id="list3">
<li><span class="list-item-span">Élément 1</span></li>
<li><span class="list-item-span">Élément 2</span></li>
<li><span class="list-item-span">Élément 3</span></li>
<li><span class="list-item-span">Élément 4</span></li>
<li><span class="list-item-span">Élément 5</span></li>
<li><span class="list-item-span">Élément 6</span></li>
<li><span class="list-item-span">Élément 7</span></li>
</ul>
<div id="contextMenu" class="context-menu">
<ul>
<li onclick="handleOption1()">Option 1</li>
<li onclick="handleOption2()">Option 2</li>
<li onclick="handleOption3()">Option 3</li>
</ul>
</div>
<script>
const contextMenu = document.getElementById('contextMenu');
const listItemSpans = document.querySelectorAll('.list-item-span');
listItemSpans.forEach(span => {
span.addEventListener('contextmenu', (event) => {
event.preventDefault();
contextMenu.style.display = 'block';
contextMenu.style.left = `${event.pageX}px`;
contextMenu.style.top = `${event.pageY}px`;
});
});
document.addEventListener('click', (event) => {
if (!contextMenu.contains(event.target) && !event.target.matches('.list-item-span')) {
contextMenu.style.display = 'none';
}
});
document.addEventListener('keydown', (event) => {
if (event.key === 'Escape' || event.keyCode === 27) {
contextMenu.style.display = 'none';
}
});
function handleOption1() {
alert('Option 1 sélectionnée');
contextMenu.style.display = 'none';
}
function handleOption2() {
alert('Option 2 sélectionnée');
contextMenu.style.display = 'none';
}
function handleOption3() {
alert('Option 3 sélectionnée');
contextMenu.style.display = 'none';
}
</script>
</body>
</html>