鼠标拖拽调整div大小
实现思路
- 根据鼠标位置改变鼠标样式
- 当鼠标在div的边缘和四个角时显示不同的样式,通过cursor修改
- 当鼠标在div的边缘和四个角按下时记录具体坐标点位置, 并开始根据鼠标的移动修改div的尺寸
- 鼠标松开时结束尺寸修改
代码实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body, html {
width: 100%;
height: 100%;
margin: 0;
}
#container {
width: 200px;
height: 200px;
padding: 15px;
border: #00cdcd 2px solid;
box-sizing: border-box;
}
.item {
cursor: default;
width: 100%;
height: 100%;
background: #757575;
}
</style>
</head>
<body id="body">
<div id="container">
<div class="item"></div>
</div>
<script>
let c = document.getElementById('container')
document.getElementById('body').addEventListener('mousemove', move)
c.addEventListener('mousedown', down)
document.getElementById('body').addEventListener('mouseup', up)
let resizeable = false
let clientX, clientY
let minW = 8, minH = 8
let direc = ''
function up() {
resizeable = false
}
function down(e) {
let d = getDirection(e)
if (d !== '') {
resizeable = true
direc = d
clientX = e.clientX
clientY = e.clientY
}
}