<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
div{
height: 200px;
width: 200px;
background-color: brown;
box-shadow: 10px 10px 15px rgba(0, 0, 0, 0.7);
border-radius: 15px;
position: absolute;
left: 500px;
top: 200px;
padding: 24px;
}
nav{
margin: 27px auto 0;
position: relative;
width: 150px;
height: 20px;
background-color: #34495e;
border-radius: 5px;
font-size: 0;
}
nav span{
display: block;
}
nav a {
line-height: 50px;
height: 100%;
font-size: 15px;
display: inline-block;
position: relative;
z-index: 1;
text-decoration: none;
text-transform: uppercase;
text-align: center;
color: white;
cursor: pointer;
}
nav .animation {
position: absolute;
height: 100%;
top: 0;
z-index: 0;
transform: all .5s ease 0s;
border-radius: 5px;
}
a:nth-child(1){
width: 10px;
}
a:nth-child(2){
width: 20px;
}
a:nth-child(3){
width: 10px;
}
a:nth-child(4){
width: 30px;
}
a:nth-child(5){
width: 20px;
}
nav .start-home, a:nth-child(1):hover~.animation{
width: 10px;
left: 0;
background-color: #1abc9c;
}
nav .start-home, a:nth-child(2):hover~.animation{
width: 20px;
left: 0;
background-color: #e74c3c;
}
nav .start-home, a:nth-child(3):hover~.animation{
width: 10px;
left: 0;
background-color: #3498db;
}
nav .start-home, a:nth-child(4):hover~.animation{
width: 30px;
left: 0;
background-color: #9b59b6;
}
nav .start-home, a:nth-child(5):hover~.animation{
width: 20px;
left: 0;
background-color: #e67e22;
}
</style>
<body>
<div>
<nav>
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
<a href="#">4</a>
<a href="#">5</a>
<div class="animation start-home" style="display: block;"></div>
</nav>
</div>
</body>
<script>
let box = document.querySelector('div')
let flag = true
box.addEventListener('mousedown',(e)=>{
flag = true
let x = e.offsetX
let y = e.offsetY
document.addEventListener('mousemove',(e)=>{
let divLeft = e.clientX - x
let divTop = e.clientY - y
if(flag){
box.style.top = divTop + 'px'
box.style.left = divLeft + 'px'
}
})
})
document.addEventListener('mouseup',(e)=>{
flag = false
})
</script>
</html>