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>
相关文章
|
6月前
|
JavaScript
vue中的拖拽事件
vue中的拖拽事件
162 0
|
JavaScript
vue可拖拽悬浮按钮组件
vue封装一个可拖拽,贴边吸附的悬浮按钮组件。
2027 0
vue可拖拽悬浮按钮组件
|
3月前
|
移动开发 资源调度 JavaScript
Vue2使用触摸滑动插件(Swiper)
这篇文章介绍了在Vue 3框架中如何使用Swiper插件来创建不同类型的触摸滑动组件,包括轮播图、淡入淡出效果和走马灯效果,并提供了详细的配置选项和使用示例。
356 1
Vue2使用触摸滑动插件(Swiper)
|
3月前
Vue3拖拽插件(vuedraggable@next)
vuedraggable 是一款 Vue2 拖拽插件,可轻松实现列表项的拖拽排序与交互。通过简单配置,即可在不同区域间拖动元素并实现数据同步。支持多种事件监听和自定义样式。
226 2
Vue3拖拽插件(vuedraggable@next)
|
3月前
|
JavaScript API UED
Vue3使用触摸滑动插件(Swiper)
本文介绍如何在Vue2项目中使用Swiper插件实现触摸滑动功能,并封装了两种轮播图展示形式:首页轮播图(`type: banner`)和走马灯轮播图(`type: carousel`),以及信息展播模式(`type: broadcast`)。支持自定义轮播图片、区域尺寸、动画效果等属性。通过示例代码展示了不同切换动画及自定义效果,并提供了在线预览。适用于多种应用场景,提升用户体验。
Vue3使用触摸滑动插件(Swiper)
|
3月前
|
资源调度 JavaScript
Vue2拖拽插件(vuedraggable)
这篇文章介绍了如何在Vue 3框架中使用`vuedraggable`插件来实现拖拽功能,并提供了插件的安装、配置和事件处理的示例。
101 1
Vue2拖拽插件(vuedraggable)
|
4月前
uniapp实战 —— 弹出层 uni-popup (含vue3子组件调父组件的方法)
uniapp实战 —— 弹出层 uni-popup (含vue3子组件调父组件的方法)
510 1
|
6月前
|
移动开发 小程序 JavaScript
uniapp中uview组件库丰富的Slider 滑动选择器的使用方法
uniapp中uview组件库丰富的Slider 滑动选择器的使用方法
710 1
|
6月前
|
前端开发
用react实现手机端限制拖拽实现
用react实现手机端限制拖拽实现
89 0
|
前端开发 JavaScript
论如何用Vue实现一个弹窗-一个简单的组件实现
最近在使用element-ui框架,用到了Dialog对话框组件,大致实现的效果,跟我之前自己在移动端项目里面弄的一个弹窗组件差不太多。然后就想着把这种弹窗组件的实现方式与大家分享一下,下面本文会带着大家手摸手实现一个弹窗组件。 本文主要内容会涉及到弹窗遮罩的实现,slot插槽的使用方式,props、$emit传参,具体组件代码也传上去了。如果喜欢的话可以点波赞/关注,支持一下,希望大家看完本文可以有所收获。
2568 0
论如何用Vue实现一个弹窗-一个简单的组件实现