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 相关文章推荐
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
Jul 29 Javascript
javascript 中that的含义示例介绍
May 14 Javascript
js数组依据下标删除元素
Apr 14 Javascript
jQuery中prepend()方法使用详解
Aug 11 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
Apr 17 Javascript
浅谈Javascript数据属性与访问器属性
Jul 26 Javascript
jquery代码规范让代码越来越好看
Feb 03 Javascript
Vue 路由 过渡动效 数据获取方法
Jul 31 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
Aug 24 jQuery
Vue2.x Todo之自定义指令实现自动聚焦的方法
Jan 08 Javascript
Ant Design Pro 之 ProTable使用操作
Oct 31 Javascript
jquery插件实现悬浮的菜单
Apr 24 jQuery
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
mysql 搜索之简单应用
2007/04/27 PHP
PHP在线生成二维码代码(google api)
2013/06/03 PHP
php的单例模式及应用场景详解
2021/02/27 PHP
Javascript原型链和原型的一个误区
2014/10/22 Javascript
nodejs中实现路由功能
2014/12/29 NodeJs
js跨域资源共享 基础篇
2016/07/02 Javascript
Bootstrap导航条鼠标悬停下拉菜单
2017/01/04 Javascript
基于Angularjs+mybatis实现二级评论系统(仿简书)
2017/02/13 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
JS实现简单拖拽效果
2017/06/21 Javascript
关于react-router的几种配置方式详解
2017/07/24 Javascript
vue项目实现图片上传功能
2019/12/23 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
Python基本语法经典教程
2016/03/11 Python
python中的迭代和可迭代对象代码示例
2017/12/27 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
Python中顺序表的实现简单代码分享
2018/01/09 Python
python放大图片和画方格实现算法
2018/03/30 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
解决python 无法加载downsample模型的问题
2018/10/25 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
Python库安装速度过慢解决方案
2020/07/14 Python
通过CSS3的object-fit来调整图片适配尺寸的技巧简介
2016/02/27 HTML / CSS
如何进行有效的自我评价
2013/09/27 职场文书
教师实习自我鉴定
2013/12/13 职场文书
简历中个人自我评价范文
2013/12/26 职场文书
店长职务说明书
2014/02/04 职场文书
文明和谐家庭事迹材料
2014/05/18 职场文书
供电工程专业求职信
2014/08/09 职场文书
戒毒悔改检讨书
2014/09/21 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
Python下opencv使用hough变换检测直线与圆
2021/06/18 Python
Python编程源码报错解决方法总结经验分享
2021/10/05 Python