爱她就圈住她
<style>.stage {
margin: auto;
display: flex;
justify-content: center;
align-items: center;
width: 740px;
height: 560px;
background: #eee;
box-shadow: 1px 1px 2px #666;
position: relative;
}
.stage::before {
position: absolute;
content: '图片拖拽不出父元素';
top: 10px;
left: 10px;
font: normal 14px sans-serif;
}
.movBox {
position: absolute;
width: 120px;
height: 120px;
background: #ccc url('/data/attachment/forum/202205/17/131141iqoznnyfo4pqgqna.jpg') no-repeat;
border-radius: 50%;
cursor: pointer;
}
</style>
<div class="stage">
<div class="movBox"></div>
</div>
<script>
let canMove = false;
let m2pgX, m2pgY,m2eX,m2eY;
let movBox = document.querySelector('.movBox');
let stage = document.querySelector('.stage');
movBox.onmousedown = function(e){
e = e || event;
canMove = true;
m2pgX = e.pageX;
m2pgY = e.pageY;
m2eX = m2pgX - this.offsetLeft;
m2eY = m2pgY - this.offsetTop;
}
movBox.onmousemove = function(e){
if(canMove){
e = e || event;
m2pgX = e.pageX;
m2pgY = e.pageY;
let eLeft = m2pgX - m2eX;
if(eLeft < 0) eLeft = 0;
if(eLeft > stage.clientWidth - this.clientWidth) eLeft = stage.clientWidth - this.clientWidth;
let eTop = m2pgY - m2eY;
if(eTop < 0) eTop = 0;
if(eTop > stage.clientHeight - this.clientHeight) eTop = stage.clientHeight - this.clientHeight;
this.style.left = eLeft+ 'px';
this.style.top = eTop + 'px';
}
}
movBox.onmouseup = function() { canMove = false; }
movBox.onmouseleave = function(){ canMove = false; }
</script>
这叫有边界拖拽。全部代码:
<style>
.stage {
margin: auto;
display: flex;
justify-content: center;
align-items: center;
width: 740px;
height: 560px;
background: #eee;
box-shadow: 1px 1px 2px #666;
position: relative;
}
.stage::before {
position: absolute;
content: '图片拖拽不出父元素';
top: 10px;
left: 10px;
font: normal 14px sans-serif;
}
.movBox {
position: absolute;
width: 120px;
height: 120px;
background: #ccc url('/data/attachment/forum/202205/17/131141iqoznnyfo4pqgqna.jpg') no-repeat;
border-radius: 50%;
cursor: pointer;
}
</style>
<div class="stage">
<div class="movBox"></div>
</div>
<script>
let canMove = false;
let m2pgX, m2pgY,m2eX,m2eY;
let movBox = document.querySelector('.movBox');
let stage = document.querySelector('.stage');
movBox.onmousedown = function(e){
e = e || event;
canMove = true;
m2pgX = e.pageX;
m2pgY = e.pageY;
m2eX = m2pgX - this.offsetLeft;
m2eY = m2pgY - this.offsetTop;
}
movBox.onmousemove = function(e){
if(canMove){
e = e || event;
m2pgX = e.pageX;
m2pgY = e.pageY;
let eLeft = m2pgX - m2eX;
if(eLeft < 0) eLeft = 0;
if(eLeft > stage.clientWidth - this.clientWidth) eLeft = stage.clientWidth - this.clientWidth;
let eTop = m2pgY - m2eY;
if(eTop < 0) eTop = 0;
if(eTop > stage.clientHeight - this.clientHeight) eTop = stage.clientHeight - this.clientHeight;
this.style.left = eLeft+ 'px';
this.style.top = eTop + 'px';
}
}
movBox.onmouseup = function() { canMove = false; }
movBox.onmouseleave = function(){ canMove = false; }
</script>
学习学习,谢谢老黑教程! 她当俺的小孙女儿还差不多。{:4_170:} 手机上不好操作拖拽,就看一看{:4_190:} 小美女萌萌哒,带着她溜达一圈 醉美水芙蓉 发表于 2022-5-17 16:55
小美女好可爱!
能拖走么 梦油 发表于 2022-5-17 14:41
她当俺的小孙女儿还差不多。
可以考虑 朵拉 发表于 2022-5-17 15:08
手机上不好操作拖拽,就看一看
手机没试过,用的是标准的鼠标事件 这个好玩,我使劲拖也拖不出去了。这个带不走了{:4_189:} 必须圈住她 {:4_170:}空了学习,老黑晚上好! {:4_204:}{:4_190:} 大猫咪 发表于 2022-5-17 19:22
必须圈住她 空了学习,老黑晚上好!
{:4_180:} 红影 发表于 2022-5-17 18:59
这个好玩,我使劲拖也拖不出去了。这个带不走了
东篱可以四处走走看世界,这个只能待在宫里了 马黑黑 发表于 2022-5-17 18:15
可以考虑
哈哈哈……我的小孙女已经是而立之年的人啦 醉美水芙蓉 发表于 2022-5-17 21:08
带着走啦!
挺好 马黑黑 发表于 2022-5-17 19:33
东篱可以四处走走看世界,这个只能待在宫里了
这个莫非是后宫{:4_173:} 红影 发表于 2022-5-19 12:14
这个莫非是后宫
估计是吧
马黑黑 发表于 2022-5-19 12:16
估计是吧
圈得好,东篱大哥还指望后宫卖个好价钱呢{:4_173:}
页:
[1]
2