vue的移动app项目中,自定义拖拽指令的问题

使用vue的都知道vue有一个自定义指令,我比较喜欢的就是拖拽的自定义指令,感觉挺方便的!

 //组件内的拖拽指令
directives: {
    //组建内自定义指令
    drag: {
      // 指令的定义
      bind: function(el, value) {
        let oDiv = el; //当前元素
        let self = this; //上下文

        oDiv.ontouchstart = function(e) {
          //鼠标按下,计算当前元素距离可视区的距离
          let disX = e.touches[0].clientX - oDiv.offsetLeft;
          let disY = e.touches[0].clientY - oDiv.offsetTop;
          oDiv.style.zIndex = 3;

          document.ontouchmove = function(e) {
            //通过事件委托,计算移动的距离
            let l = e.touches[0].clientX - disX;
            let t = e.touches[0].clientY - disY;
            //移动当前元素
            //   oDiv.style.left = l + ‘px‘;

          document.ontouchend = function(e) {
            oDiv.style.zIndex = 2;

            }
            document.ontouchmove = null;
            document.ontouchend = null;
          };
        };
      }
    }
  }
//大致的框架就是这样其中el指的是绑定的元素,value就是传的值了,

  用法:

<div v-drag=‘{data:fills,info:data} ‘>拖拽</div>
<!--{}里面的全部都是传的参数,对应的就是上面的value-->

  上面是拖拽指令的写法及用法,但是这并不是主要内容,当你移动端使用自定义指令的时候,如果你的公司需要兼容各种手机版本以及各种系统版本,那么可能你就需要把他撤掉,我遇到的就是苹果5s并不支持,如果用自定义的指令,那么他会闪烁,没有内容,是白屏状态,所以说,想要用自定义指令的,要考虑考使用环境!

原文地址:https://www.cnblogs.com/ctb-web/p/9360578.html

时间: 2024-10-11 14:53:44

vue的移动app项目中,自定义拖拽指令的问题的相关文章

vue 自定义拖拽指令

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>实例方法</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scal

Android项目中自定义顶部标题栏

Android项目中自定义顶部标题栏 下面给大家详细介绍android中自定义顶部标题栏的思路及实现方式 先来图:     思路及实现步骤 1.定义标题栏布局 2.自定义TitleActivity控制标题栏按钮监听 3.在TitleActivity中实现标题栏以下内容切换 首先定义标题栏 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http:/

自定义导航器中的拖拽定义

有时候需要对导航器中的拖拽对象进行赋值,使用的场景是,拖拽导航器中的某个文件或者类或方法等,到某个编辑器中,,因为默认的导航器所配备的拖拽动作,或则不能满足我们的需要,所有,有必要自定义,,拖拽器,,在哪里定义?就在如下的类方法中. 参考类com.langsotech.studio.navigator.base.views.JCommonViewer中的方法@Overrideprotected void initDragAndDrop() {  /* Handle Drag and Drop *

Android中GridView拖拽的效果

最 近看到联想,摩托罗拉等,手机launcher中有个效果,进入mainmenu后,里面的应用程序的图标可以拖来拖去,所以我也参照网上给的代码,写了 一个例子.还是很有趣的,实现的流畅度没有人家的那么好,我只是模仿这种效果,我写的这个拖拽是两个图标之间进行交换,所以,当从一行的某个位置,换到下 一行的另一列的时候,发现有好几个图标都改变位置了,因为是相邻两个交换位置,所以每经过相邻的图标的时候都改变位置.先弄个雏形,以后再更新优化. 转载请标明出处:http://blog.csdn.net/wd

xib中关于拖拽手势的潜在错误

iOS开发拓展篇—xib中关于拖拽手势的潜在错误 一.错误说明 自定义一个用来封装工具条的类 搭建xib,并添加一个拖拽的手势. 主控制器的代码:加载工具条 封装工具条以及手势拖拽的监听事件 此时运行程序,程序直接崩溃,报错如下: 说明:手势不会有superView方法,superView是UIView的方法,说明我们错误的把手势对象当成是UIView来用了. 调试查看出现问题的原因: 出现问题的原因: 说明:通过lastObject取出来的对象是手势,而不是xib,因此出现上面的错误. 把la

iOS开发拓展篇—xib中关于拖拽手势的潜在错误

iOS开发拓展篇—xib中关于拖拽手势的潜在错误 一.错误说明 自定义一个用来封装工具条的类 搭建xib,并添加一个拖拽的手势. 主控制器的代码:加载工具条 封装工具条以及手势拖拽的监听事件 此时运行程序,程序直接崩溃,报错如下: 说明:手势不会有superView方法,superView是UIView的方法,说明我们错误的把手势对象当成是UIView来用了. 调试查看出现问题的原因: 出现问题的原因: 说明:通过lastObject取出来的对象是手势,而不是xib,因此出现上面的错误. 把la

WPF中元素拖拽的两个实例

原文:WPF中元素拖拽的两个实例 今天结合之前做过的一些拖拽的例子来对这个方面进行一些总结,这里主要用两个例子来说明在WPF中如何使用拖拽进行操作,元素拖拽是一个常见的操作,第一个拖拽的例子是将ListBox中的子元素拖拽到ListView的某一个节点,从而将该子元素作为当前节点的子节点.第二个例子就是将ListView的某一项拖拽到另外一项上从而使两个子项位置互换,这两个例子的原理类似,实现细节上有所差别,下面就具体分析一下这些细节. DEMO1 一 示例截图 图一 示例一截图 二 重点原理分

Asp.net中存储过程拖拽至dbml文件中,提示无法获得返回值

Asp.net中存储过程拖拽至dbml文件中,提示无法获得返回值,去属性表中设置这时候会提示你去属性表中更改返回类型. 其实存储过程返回的也是一张表,只不过有时候存储过程有点复杂或者写法不规范的话不能自动生成映射文件. 不能自动生成那就自己写一张表跟存储过程返回的那张表一样就行.然后拖拽至dbml中,然后设置属性中返回类型为这张表就行了.

【vue】vue-cli3构建项目中实现图片懒加载

前两天正好写了文章如何用实现图片懒加载[性能优化]JS实现图片懒加载,今天在使用vue构建项目的时候就遇到了要做图片懒加载的优化需要,本想把前两天的代码直接copy过来的,后来想查查看有没有更简便的方法,果不其然,vue中直接有插件可以使用,看了下实现时候的效果,实现原理都和原生js是一样的,vue果然真香! 接下来我们来讲vue-lazyload插件的使用: 1.安装插件 cnpm i vue-lazyload -S 2.入口文件main.js中配置: import Vue from 'vue