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 相关文章推荐
JavaScript中的字符串操作详解
Nov 12 Javascript
Node调试工具JSHint的安装及配置教程
May 27 Javascript
JavaScript中的ArrayBuffer详细介绍
Dec 08 Javascript
jQuery中复合属性选择器用法实例
Dec 31 Javascript
CSS javascript 结合实现悬浮固定菜单效果
Aug 23 Javascript
谈谈javascript中使用连等赋值操作带来的问题
Nov 26 Javascript
原生js封装二级城市下拉列表的实现代码
Jun 16 Javascript
JavaScript装饰器函数(Decorator)实例详解
Mar 30 Javascript
Vue.js常用指令的使用小结
Jun 23 Javascript
浅谈Node异步编程的机制
Oct 18 Javascript
前端vue+elementUI如何实现记住密码功能
Sep 20 Javascript
通过滑动翻页效果实现和移动端click事件问题
Jan 26 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
echo(),print(),print_r()之间的区别?
2006/11/19 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
PHP 模拟登陆功能实例详解
2019/09/10 PHP
用Javascript读取中文COOKIE的解决办法
2007/02/15 Javascript
Jquery插件之多图片异步上传
2010/10/20 Javascript
基于jquery的滑动样例代码
2010/11/20 Javascript
解决Jquery鼠标经过不停滑动的问题
2014/03/03 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
2014/04/17 Javascript
jQuery中contents()方法用法实例
2015/01/08 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
详解AngularJS控制器的使用
2016/03/09 Javascript
javascript实现不同颜色Tab标签切换效果
2016/04/27 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
2016/12/17 Javascript
JS中with的替代方法与String中的正则方法详解
2016/12/23 Javascript
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
2016/12/28 Javascript
vuejs绑定class和style样式
2017/04/11 Javascript
微信小程序movable view移动图片和双指缩放实例代码
2017/08/08 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
python粘包问题及socket套接字编程详解
2019/06/29 Python
pandas 使用均值填充缺失值列的小技巧分享
2019/07/04 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
小区门卫工作职责
2013/12/14 职场文书
转预备党员政审材料
2014/02/06 职场文书
十八届三中全会个人学习材料
2014/02/13 职场文书
大班幼儿评语大全
2014/04/30 职场文书
集体生日活动方案
2014/08/18 职场文书
2016年企业先进员工事迹材料
2016/02/25 职场文书
读后感怎么写?书写读后感的基本技巧!
2019/12/10 职场文书