EXAMPLE-PIOVAN-MOTAN
by velo_ninja
HTML
<script src="https://cdn.jsdelivr.net/npm/[email protected]/+esm"></script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Konva Grid with Modern Context Menu</title>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/konva.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" rel="stylesheet">
<style>
body {
margin: 0;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
#container {
width: 100vw;
height: 100vh;
}
.context-menu {
position: absolute;
display: none;
background-color: #fff;
border: 1px solid #ccc;
border-radius: 8px;
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
font-size: 13px;
z-index: 1000;
padding: 4px 0;
min-width: 200px;
}
.context-menu ul {
list-style: none;
margin: 0;
padding: 0;
}
.context-menu li {
position: relative;
padding: 6px 12px;
padding-left: 28px;
cursor: pointer;
white-space: nowrap;
transition: background 0.2s;
font-weight: 400;
color: #333;
}
.context-menu li:hover {
background-color: #f0f2f5;
}
.context-menu li ul {
display: none;
position: absolute;
top: 0;
left: 100%;
margin-left: -1px;
background-color: #fff;
border: 1px solid #ccc;
border-radius: 8px;
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
z-index: 1001;
}
.context-menu li:hover > ul {
display: block;
}
.context-menu li.has-submenu::after {
content: "\f105";
font-family: "Font Awesome 6 Free";
font-weight: 900;
position: absolute;
right: 10px;
font-size: 10px;
color: #888;
}
.context-menu .icon {
position: absolute;
left: 8px;
font-size:...
CSS
body {
font-family: Arial, sans-serif;
}
#container {
border: 1px solid #ccc;
display: inline-block;
}
#tooltip {
position: absolute;
padding: 5px 8px;
background: #333;
color: #fff;
border-radius: 4px;
font-size: 12px;
display: none;
pointer-events: none;
z-index: 999;
}
#konva-context-menu {
position: absolute;
background: #fff;
border: 1px solid #ccc;
box-shadow: 0 2px 5px rgba(0,0,0,0.2);
padding: 4px 0;
font-family: sans-serif;
font-size: 14px;
display: none;
z-index: 1000;
min-width: 150px;
}
#konva-context-menu .menu-item {
padding: 6px 12px;
cursor: pointer;
}
#konva-context-menu .menu-item:hover {
background-color: #f0f0f0;
}