拖动div元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CodePen - draggable div#4</title>
<style>
*{
margin:0;padding:0;border:none}
body,html{
height:100%;width:100%}
.drag-box{
user-select:none;background:#f0f0f0;z-index:2147483647;position:fixed;left:0;top:0;width:200px}
#dragBoxBar{
align-items:center;display:flex;justify-content:space-between;background:#ccc;width:100%;height:40px;cursor:move;user-select:none}
.no-select{
user-select:none}
.pointer-events{
pointer-events:none}
.no-border{
border:none}
#injectedBox{
height:160px;display:flex;align-items:center;justify-content:center;font-size:2rem;background:#eee}
#dragdiv{
z-index:2147483647;position:fixed;left:0;top:0;width:200px}
#draghead {
background:#ccc;width:100%;height:40px;cursor:move}
#dragbody{
height:160px;width:100%;background:#eee}
</style>
<script src="jquery-1.8.2.min.js"></script>
</head>
<body>
<div id="dragdiv">
<div id="draghead"></div>
<div id="dragbody"></div>
</div>
<script>
var isMouseDown,
initX,
initY,
height = $('#dragbody').offsetHeight,
width = $('#dragbody').offsetWidth,
dragBoxBar = document.getElementById('draghead'),
injectedBox = document.getElementById('dragbody'),
dragBox = document.getElementById('dragdiv');
dragBoxBar.addEventListener('mousedown', function (e) {
isMouseDown = true;
document.body.classList.add('no-select');
injectedBox.classList.add('pointer-events');
initX = e.offsetX;
initY = e.offsetY;
//dragBox.style.opacity = 0.5;
});
dragBoxBar.addEventListener('mouseup', function (e) {
mouseupHandler();
});
document.addEventListener('mousemove', function (e) {
if (isMouseDown) {
var cx = e.clientX - initX,
cy = e.clientY - initY;
if (cx < 0) cx = 0;
if (cy < 0) cy = 0;
if (window.innerWidth - e.clientX + initX < width + 16) cx = window.innerWidth - width;
if (e.clientY > window.innerHeight - height - dragBoxBar.offsetHeight + initY) cy = window.innerHeight - dragBoxBar.offsetHeight - height;
dragBox.style.left = cx + 'px';
dragBox.style.top = cy + 'px';
}
});
document.addEventListener('mouseup', function (e) {
if (e.clientY > window.innerWidth || e.clientY < 0 || e.clientX < 0 || e.clientX > window.innerHeight) {
mouseupHandler();
}
});
function mouseupHandler() {
isMouseDown = false;
document.body.classList.remove('no-select');
injectedBox.classList.remove('pointer-events');
//dragBox.style.opacity = 1;
}
</script>
</body>
</html>
转载于//www.cnblogs.com/wangyongx/p/11526783.html
还没有评论,来说两句吧...