Тень у элемента drag-n-drop обрезается
Здраствуйте подскажите пожалусто почему у переносимого элемента тень обрезается?
я не использую overflow: hidden
, но тень всё равно обрезается.
Помогите пожалусто разобратся с этой проблемой, я немогу понять почему это так происходит.
document.addEventListener("DOMContentLoaded", () => {
const fill = document.querySelector(".fill");
const empties = document.querySelectorAll(".empty");
function dragStart() {
this.classList.add("hold");
setTimeout(() => (this.classList = "invisible"), 0);
}
function dragEnd() {
this.classList = "fill";
}
function dragEnter(e) {
e.preventDefault();
this.classList.toggle("hovered");
}
function dragLeave() {
this.classList.toggle("hovered");
}
function dragOver(e) {
e.preventDefault();
}
function drop() {
this.classList = "empty";
this.append(fill);
}
fill.addEventListener("dragstart", dragStart);
fill.addEventListener("dragend", dragEnd);
for (const element of empties) {
element.addEventListener("dragenter", dragEnter);
element.addEventListener("dragleave", dragLeave);
element.addEventListener("dragover", dragOver);
element.addEventListener("drop", drop);
}
});
body {
overflow-x: hidden;
min-height: 100vh;
position: relative;
margin: 0;
background-color: #efefef;
font-family: "Montserrat", serif;
}
*,
*::before,
*::after {
margin: 0;
padding: 0;
/* box-sizing: border-box; */
}
img {
display: block;
width: 100%;
}
.container {
padding: 50px 30px;
max-width: 1200px;
margin: 0 auto;
}
.flex {
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
}
.box {
display: flex;
gap: 16px;
}
.empty {
width: 100px;
height: 100px;
background-color: #fff;
border-radius: 10px;
border: 2px dotted #ccc;
overflow: visible;
}
.fill {
cursor: pointer;
width: 100px;
height: 100px;
border-radius: 100px;
background-color: #af9;
}
.hold {
filter: opacity(0.4);
border: 2px dotted #aaa;
box-shadow: 0 0 20px #333;
}
.hovered {
background-color: #aaa;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="stule.css">
<script src="script.js"></script>
</head>
<body>
<div class="container flex">
<div class="box">
<div class="empty">
<div class="fill" draggable="true"></div>
</div>
<div class="empty"></div>
<div class="empty"></div>
<div class="empty"></div>
<div class="empty"></div>
</div>
</div>
</body>
</html>