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 相关文章推荐
use jscript Create a SQL Server database
Jun 16 Javascript
防止动态加载JavaScript引起的内存泄漏问题
Oct 08 Javascript
3款实用的在线JS代码工具(国外)
Mar 15 Javascript
js 操作select与option(示例讲解)
Dec 20 Javascript
apply和call方法定义及apply和call方法的区别
Nov 15 Javascript
果断收藏9个Javascript代码高亮脚本
Jan 06 Javascript
AngularJS 指令的交互详解及实例代码
Sep 14 Javascript
Angular2生命周期钩子函数的详细介绍
Jul 10 Javascript
vue的安装及element组件的安装方法
Mar 09 Javascript
redux-saga 初识和使用
Mar 10 Javascript
Angular动态绑定样式及改变UI框架样式的方法小结
Sep 03 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
Nov 04 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
松下Panasonic RF-B65电路分析
2021/03/02 无线电
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
2006/10/09 PHP
php 多关键字 高亮显示实现代码
2012/04/23 PHP
php5.3中连接sqlserver2000的两种方法(com与ODBC)
2012/12/29 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
php利用gd库为图片添加水印
2016/11/09 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
客户端js性能优化小技巧整理
2013/11/05 Javascript
jquery自动填充勾选框即把勾选框打上true
2014/03/24 Javascript
JS小游戏之象棋暗棋源码详解
2014/09/25 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
Angularjs cookie 操作实例详解
2017/09/27 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
React-native桥接Android原生开发详解
2018/01/17 Javascript
使用javascript做在线算法编程
2018/05/25 Javascript
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
深入理解JS异步编程-Promise
2019/06/03 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
2019/10/11 Javascript
JavaScript实时更新当前的时间的示例代码
2020/07/15 Javascript
python实现的一个p2p文件传输实例
2014/06/04 Python
浅析python中SQLAlchemy排序的一个坑
2017/02/24 Python
Python在for循环中更改list值的方法【推荐】
2018/08/17 Python
pygame游戏之旅 如何制作游戏障碍
2018/11/20 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
Lands’ End英国官方网站:高质量男女服装
2017/10/07 全球购物
奥地利时尚、美容、玩具和家居之家:Kastner & Öhler
2020/04/26 全球购物
经典导游欢迎词大全
2014/01/16 职场文书
小学清明节活动方案
2014/03/08 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
群众路线教育实践活动心得体会(四风)
2014/11/03 职场文书
js实现上传图片到服务器
2021/04/11 Javascript
Java基础之this关键字的使用
2021/06/30 Java/Android
2021好看的国漫排行榜前十名 《完美世界》上榜,《元龙》排名第一
2022/03/18 国漫