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>
相关文章
|
3月前
uniapp Vue3 面包屑导航 带动态样式
uniapp Vue3 面包屑导航 带动态样式
105 1
|
3月前
|
JavaScript
vue中的拖拽事件
vue中的拖拽事件
116 0
|
JavaScript
vue可拖拽悬浮按钮组件
vue封装一个可拖拽,贴边吸附的悬浮按钮组件。
1970 0
vue可拖拽悬浮按钮组件
|
1月前
uniapp实战 —— 弹出层 uni-popup (含vue3子组件调父组件的方法)
uniapp实战 —— 弹出层 uni-popup (含vue3子组件调父组件的方法)
154 1
|
3月前
|
移动开发 小程序 JavaScript
uniapp中uview组件库丰富的Slider 滑动选择器的使用方法
uniapp中uview组件库丰富的Slider 滑动选择器的使用方法
359 1
|
3月前
|
前端开发 JavaScript API
React拖拽实践
React拖拽实践
63 0
|
3月前
|
前端开发
用react实现手机端限制拖拽实现
用react实现手机端限制拖拽实现
62 0
|
9月前
|
JavaScript
Vue移动端框架Mint UI教程-底部导航栏(二)
Vue移动端框架Mint UI教程-底部导航栏(二)
71 0
|
11月前
|
JavaScript
vue实现鼠标拖拽div滚动效果-vue-dragscroll(整理)
vue实现鼠标拖拽div滚动效果-vue-dragscroll(整理)
|
12月前
|
前端开发