码迷,mamicode.com
首页 > 移动开发 > 详细

移动端的div拖拽实现

时间:2020-05-28 21:39:10      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:listen   console   tar   ack   height   屏幕   end   on()   win   

全部代码:::

<template>
<div>
<div class="floatball" id="floatball"
@mousedown="down" @touchstart.stop="down"
@mousemove="move" @touchmove.stop="move"
@mouseup="end" @touchend.stop="end"
:style="{top:position.y+‘px‘, left:position.x+‘px‘}">
小球球
</div>
<!-- <div class="div1"></div> -->
</div>
 

 
</template>

<script>
// 鼠标位置和div的左上角位置 差值
var dx,dy
var screenWidth = window.screen.width
var screenHeight = window.screen.height

export default {
data() {
return {
flags: false,
position: {
x: 320,
y: 60
},
}
},
 

methods: {
// 实现移动端拖拽
down(event){
this.flags = true;
var touch ;
if(event.touches){
touch = event.touches[0];
}else {
touch = event;
}
console.log(‘鼠标点所在位置‘, touch.clientX,touch.clientY)
console.log(‘div左上角位置‘, event.target.offsetTop,event.target.offsetLeft)
dx = touch.clientX - event.target.offsetLeft
dy = touch.clientY - event.target.offsetTop
},
move() {
if (this.flags) {
var touch ;
if (event.touches) {
touch = event.touches[0];
} else {
touch = event;
}
// 定位滑块的位置
this.position.x = touch.clientX - dx;
this.position.y = touch.clientY - dy;
// 限制滑块超出页面
// console.log(‘屏幕大小‘, screenWidth, screenHeight )
if (this.position.x < 0) {
this.position.x = 0
} else if (this.position.x > screenWidth - touch.target.clientWidth) {
this.position.x = screenWidth - touch.target.clientWidth
}
if (this.position.y < 0) {
this.position.y = 0
} else if (this.position.y > screenHeight - touch.target.clientHeight) {
this.position.y = screenHeight - touch.target.clientHeight
}
//阻止页面的滑动默认事件
document.addEventListener("touchmove",function(){
event.preventDefault();
},false);
}
},
//鼠标释放时候的函数
end(){
console.log(‘end‘)
this.flags = false;
},

}
 
}
</script>

<style>
.floatball{
color:white;
height:50px;
width: 50px;
padding: 5px;
z-index: 990;
position: fixed;
top: 60px;
right: 320px;
border-radius: 50%;
background-color: rgba(29, 157, 237,0.8);
line-height: 50px;
}
.div1{
width: 100px;
height: 100px;
background: red;
}
</style>

移动端的div拖拽实现

标签:listen   console   tar   ack   height   屏幕   end   on()   win   

原文地址:https://www.cnblogs.com/mzj143/p/12983933.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!