vuejs移动端实现div拖拽移动


Posted in Javascript onJuly 25, 2019

vue移动端实现div拖拽移动,供大家参考,具体内容如下

本文讲述,在使用VUE的移动端实现类似于iPhone的悬浮窗的效果。

相关知识点

  • touchstart 当在屏幕上按下手指时触发
  • touchmove 当在屏幕上移动手指时触发
  • touchend 当在屏幕上抬起手指时触发
  • mousedown mousemove mouseup对应的是PC端的事件
  • touchcancel 当一些更高级别的事件发生的时候(如电话接入或者弹出信息)会取消当前的touch操作,即触发touchcancel。一般会在touchcancel时暂停游戏、存档等操作。

效果图

vuejs移动端实现div拖拽移动

实现步骤

(一)html

总结了一下评论,好像发现大家都碰到了滑动的问题。就在这里提醒一下吧。可将该悬浮 DIV 同你的 scroller web 同级。 ---- (log: 2018-08-21)

html结构: <template> <div>你的web页面</div> <div>悬浮DIV</div> </template>

<template>
 <div id="webId">
 <div>你的web页面</div>
 <!-- 1.1 如果碰到滑动问题,请检查这里是否属于同一点。 -->
 <!-- 悬浮的HTML -->
 <div v-if="!isShow" class="xuanfu" id="moveDiv"
 @mousedown="down" @touchstart="down"
 @mousemove="move" @touchmove="move"
 @mouseup="end" @touchend="end"
 >
 <div class="yuanqiu">
 {{pageInfo.totalPage}}
 </div>
 </div>
 </div>
</template>

(二)JS

<script>
data() {
 return {
 flags: false,
 position: { x: 0, y: 0 },
 nx: '', ny: '', dx: '', dy: '', xPum: '', yPum: '',
 }
}

methods: {
 // 实现移动端拖拽
 down(){
 this.flags = true;
 var touch;
 if(event.touches){
 touch = event.touches[0];
 }else {
 touch = event;
 }
 this.position.x = touch.clientX;
 this.position.y = touch.clientY;
 this.dx = moveDiv.offsetLeft;
 this.dy = moveDiv.offsetTop;
 },
 move(){
 if(this.flags){
 var touch ;
 if(event.touches){
 touch = event.touches[0];
 }else {
 touch = event;
 }
 this.nx = touch.clientX - this.position.x;
 this.ny = touch.clientY - this.position.y;
 this.xPum = this.dx+this.nx;
 this.yPum = this.dy+this.ny;
 moveDiv.style.left = this.xPum+"px";
 moveDiv.style.top = this.yPum +"px";
 //阻止页面的滑动默认事件
 document.addEventListener("touchmove",function(){ // 1.2 如果碰到滑动问题,请注意是否获取到 touchmove
 event.preventDefault();//jq 阻止冒泡事件
 // event.stopPropagation(); // 如果没有引入jq 就用 stopPropagation()
 },false);
 }
 },
//鼠标释放时候的函数
 end(){
 this.flags = false;
 },
}
</script>

(三)CSS

<style>
 .xuanfu {
 height: 4.5rem;
 width: 4.5rem;
 /*1.3 如果碰到滑动问题,请检查 z-index。z-index需比web大一级*/
 z-index: 999;
 position: fixed;
 top: 4.2rem;
 right: 3.2rem;
 border-radius: 0.8rem;
 background-color: rgba(0, 0, 0, 0.55);
 }
 .yuanqiu {
 height: 2.7rem;
 width: 2.7rem;
 border: 0.3rem solid rgba(140, 136, 136, 0.5);
 margin: 0.65rem auto;
 color: #000000;
 font-size: 1.6rem;
 line-height: 2.7rem;
 text-align: center;
 border-radius: 100%;
 background-color: #ffffff;
 }
</style>

实现好JS逻辑,基本上,问题不大。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 调用本地exe的例子(支持IE内核的浏览器)
Dec 26 Javascript
固定网页背景图同时保持图片比例的思路代码
Aug 15 Javascript
javascript ajax 仿百度分页函数
Oct 29 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
Nov 13 Javascript
JavaScript的内存释放问题详解
Jan 21 Javascript
jQuery插件实现多级联动菜单效果
Dec 01 Javascript
用jquery快速解决IE输入框不能输入的问题
Oct 04 Javascript
在vue项目中,使用axios跨域处理
Mar 07 Javascript
《javascript少儿编程》location术语总结
May 27 Javascript
react-native android状态栏的实现
Jun 15 Javascript
express+vue+mongodb+session 实现注册登录功能
Dec 06 Javascript
JavaScript this关键字的深入详解
Jan 14 Javascript
vue实现拖拽的简单案例 不超出可视区域
Jul 25 #Javascript
vue实现一拉到底的滑动验证
Jul 25 #Javascript
微信小程序实现图片选择并预览功能
Jul 25 #Javascript
详细教你微信公众号正文页SVG交互开发技巧
Jul 25 #Javascript
微信小程序绘制图片发送朋友圈
Jul 25 #Javascript
微信小程序使用canvas自适应屏幕画海报并保存图片功能
Jul 25 #Javascript
微信小程序实现动态列表项的顺序加载动画
Jul 25 #Javascript
You might like
桌面中心(一)创建数据库
2006/10/09 PHP
PHP Socket 编程
2010/04/09 PHP
PHP云打印类完整示例
2016/10/15 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
如何重写Laravel异常处理类详解
2020/12/20 PHP
javascript编程起步(第五课)
2007/01/10 Javascript
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
jQuery拖动图片删除示例
2013/05/10 Javascript
对之前写的jquery分页做下升级
2014/06/19 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
JS组件系列之JS组件封装过程详解
2017/04/28 Javascript
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
Vue 之孙组件向爷组件通信的实现
2019/04/23 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
[44:15]国士无双DOTA2 6.82版本详解(上)
2014/09/28 DOTA
Python发送http请求解析返回json的实例
2018/03/26 Python
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
python将控制台输出保存至文件的方法
2019/01/07 Python
用Python画一个LinkinPark的logo代码实例
2019/09/10 Python
Python 函数用法简单示例【定义、参数、返回值、函数嵌套】
2019/09/20 Python
基于python使用tibco ems代码实例
2019/12/20 Python
使用CSS3制作饼状旋转载入效果的实例
2015/06/23 HTML / CSS
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
Html5实现单张、多张图片上传功能
2019/04/28 HTML / CSS
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
大学生军训自我鉴定
2014/02/12 职场文书
房地产广告词大全
2014/03/19 职场文书
幼儿园中班下学期评语
2014/04/18 职场文书
电子工程求职信
2014/07/17 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
学校实习推荐信
2015/03/27 职场文书
环保守法证明
2015/06/24 职场文书
九年级化学教学反思
2016/02/22 职场文书
中秋节作文(五年级)之关于月亮
2019/09/11 职场文书