<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>在当前显示区范围内实现点不到的小方块</title>
<style>
div {
position: fixed;
width: 100px;
height: 100px;
top: 200px;
left: 300px;
background-image: url(images/xiaoxin.gif);
background-size: 100%;
}
</style>
</head>
<body>
<div id="pop"></div>
<script>
var pop=document.getElementById("pop");
// pop.onclick=function(e){
// // 浏览器显示区
// console.log(`e.screenX:${e.screenX},e.screenY:${e.screenY}`)
// // 文档显示区
// console.log(`e.clientX:${e.clientX},e.clientY:${e.clientY}`)
// // div显示区
// console.log(`e.offsetX:${e.offsetX},e.offsetY:${e.offsetY}`)
// }
var canMove=false;//默认不允许拖拽
var offsetX,offsetY;//在移动过程中保持记录鼠标相对于当前元素左上角的坐标
// 当鼠标左键在图片上按下时,允许图片可以拖拽
pop.onmousedown=function(e){
canMove=true;
// 获取鼠标相对于与当前div左上角的位置,备用
offsetX=e.offsetX;
offsetY=e.offsetY;
}
// 当鼠标在文档显示区范围内移动时
document.body.onmousemove=function(e){
// 如果允许拖拽
if(canMove){
var x=e.clientX;
var y=e.clientY;
// 才根据鼠标位置,计算出图片新位置,并移动图片
var left=x-offsetX;
var top=y-offsetY;
// pop.style.cssText=`top:${top}px`
if(left<0){
left=0;
}else if(left>innerWidth-100){
top=innerHeight-100;
}
pop.style.left=left+'px';
pop.style.top=top+'px';
}
}
// 当鼠标左键在图片上抬起时,不在允许图片可拖拽
pop.onmouseup=function(){
canMove=false;
}
</script>
</body>
</html>