vue2中v-drag如何实现拖拽(移动端)

简介: vue2中v-drag如何实现拖拽(移动端)
<template>
  <div ref="element" class="content" v-drag draggable="false">
    <p>文字网页</p>
  </div>
</template>
<script >
export default {
  data() {
    return {};
  },
  directives: {
    drag(el) {
      let oDiv = el; //当前元素
      //  按下元素事件绑定元素被按下时发生
      oDiv.ontouchstart = function (e) {
        let disX = e.targetTouches[0].clientX - oDiv.offsetLeft;
        let disY = e.targetTouches[0].clientY - oDiv.offsetTop;
        // 按下后移动元素事件,能获取元素的位置
        document.ontouchmove = function (e) {
          // 通过事件委托,计算移动的距离
          let l = e.changedTouches[0].clientX - disX;
          let t = e.changedTouches[0].clientY - disY;
          // 控制左边拖拽的距离
          if (l < 0) {
            l = 0;
          }
          // 控制上边拖拽的距离
          if (t < 0) {
            t = 0;
          }
          // 控制下边拖拽的距离
          if (t > window.screen.height - 100) { //用可视窗口减去div的高度
            t = window.screen.height - 100;
          }
          // 控制右边拖拽的距离
          if (l > window.screen.width - 100) { //用可视窗口减去div的宽度
            l = window.screen.width - 100;
          }
          //移动当前元素
          oDiv.style.left = l + "px";
          oDiv.style.top = t + "px";
        };
      };
    },
  },
};
</script>
<style>
.content {
  position: absolute;
  height: 100px;
  width: 100px;
  background-color: #67c23a;
}
</style>
相关文章
|
Kubernetes 监控 调度
|
JavaScript
基于Vue2或Vue3实现任意上下左右拖拽悬浮的元素,且配置为自定义的全局指令
这篇文章介绍了如何在Vue 2或Vue 3项目中实现一个自定义的全局指令`v-dragSwitch`,用于创建可以任意方向拖拽并悬浮的元素,同时包含边界处理的逻辑。
3952 2
基于Vue2或Vue3实现任意上下左右拖拽悬浮的元素,且配置为自定义的全局指令
|
C++ Windows
(1)Qt的基本数据类型以及基本输出
这篇文章介绍了Qt框架中的基本数据类型和日志输出方法,包括如何使用QDebug类及其相关函数进行调试和日志记录,以及如何取消输出时的空格和字符串引号,还提供了抑制输出的两种方式。
454 4
(1)Qt的基本数据类型以及基本输出
|
JavaScript UED
Vue + ElementUI 实现动态添加和删除表单项的多层嵌套表单
【10月更文挑战第5天】本示例展示了如何在 Vue.js 中使用 Element UI 组件实现动态添加和删除嵌套表单项。该表单包含设备信息、设备部位及其对应的任务列表,支持用户动态添加设备部位和任务,并提供相应的表单验证规则。
1679 0
Vue + ElementUI 实现动态添加和删除表单项的多层嵌套表单
|
JavaScript
Vue3分段控制器(Segmented)
这是一个基于 Vue 的分段控制器组件 `Segmented`,支持多种选项和自定义渲染。通过 `v-model` 绑定当前选中值,并提供 `block`、`disabled` 和 `size` 等属性来调整样式。
499 0
Vue3分段控制器(Segmented)
|
JavaScript
vue自定义v-drag指令实现鼠标拖拽
vue自定义v-drag指令实现鼠标拖拽
655 2
|
JSON JavaScript 定位技术
Echarts 绘制地图(中国、省市、区县),保姆级教程!
Echarts 绘制地图(中国、省市、区县),保姆级教程!
|
数据可视化 JavaScript 前端开发
使用 ECharts 绘制3D饼图,立体效果华丽渲染!
使用 ECharts 绘制3D饼图,立体效果华丽渲染!
|
缓存 监控 小程序
微信小程序全栈开发中的性能监控与调优
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的性能监控与调优。页面加载速度、响应速度、内存占用和电量消耗是关键性能问题。开发者可利用微信小程序开发者工具进行性能监控,分析指标并优化代码、数据缓存、资源管理。通过综合性能调优,提升小程序性能和用户体验,降低用户流失。开发者需持续关注和学习新性能优化技术。
543 2
|
移动开发 JavaScript 前端开发
Element Plus 和 Ant Design Vue 对比测评,哪个更好?
Vue 3 发布后,各家第三方库开始陆续重构并支持 Vue 3 ,国内两大知名框架 Element Plus 和 Ant Design Vue 也相续发布新版支持 Vue 3。到底应该怎么选择呢?本文从多个纬度对两个框架进行对比和测评。
3958 0