vue移动端拖拽插件,vue移动端左右滑动

  vue移动端拖拽插件,vue移动端左右滑动

  本文主要详细介绍了vue拖动移动div的效果。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

  本文分享vue在移动端实现div拖动的具体代码,供大家参考。具体内容如下

  拖div的效果在手机上偶尔会用到。虽然我自己没遇到过,但还是想写一个以防万一。需要说明的是,我在网上找到了具体的实现代码,但是那个代码有一些问题。我收集了其他资料修改了一下,也是现在这个样子,所以还是要感谢写这个代码的大神和万能的搜索引擎。

  

1、分享代码

  Html代码

  模板

  div class=main

  div ref= move _ div @ touch start= down @ touch move= move @ touch end= end :style= { top:top px ,left:left px } class= drag _ area /div

  /div

  /模板

  结构极其简单,毕竟只是一个DEMO

  SCSS电码。主要{

  背景色:棕色;

  高度:-WebKit-fill-可用;拖动区域{

  宽度:10vw

  高度:10vw

  背景色:道奇蓝;

  位置:绝对;

  top:0;

  左:0;

  }

  }

  为了让截图显眼,main上特意加了一个背景色。

  翻译

  效果是可以在屏幕范围内自由拖动蓝色色块,但我特意做了超出屏幕区域的限制,不需要限制的可以自己改。

  javascript,javascript

  导出默认值{

  名称:拖动,

  data () {

  返回{

  标志:假,

  位置:{x: 0,y: 0,左:0,上:0},

  top: 0,

  左:0,

  width:window . inner width document . document element . client width document . body . client width,

  height:window . inner height document . document element . client height document . body . client height

  }

  },

  方法:{

  Down () {//拖动开始操作

  this.flags=true

  const refs=this。$ refs . move _ div . getboundingclientrect()

  让触摸=事件

  if (event.touches) {

  touch=event.touches[0]

  }

  this.position.x=touch.clientX

  this.position.y=touch.clientY

  this.position.left=refs.left

  this.position.top=refs.top

  },

  Move () {//拖动中的操作

  if (this.flags) {

  让触摸=事件

  if (event.touches) {

  touch=event.touches[0]

  }

  const xPum=this . position . left touch . clientx-this . position . x

  const yPum=this . position . top touch . clienty-this . position . y

  this.left=xPum

  this.top=yPum

  this.banOut()

  //防止页面滑动的默认事件

  document . addevent listener( touch move ,function () {

  事件. preventDefault()

  },{passive: false})

  }

  },

  End () {//拖动完成的操作。

  this.flags=false

  this.banOut()

  },

  BanOut () {//避免拖动越界限制。

  const refs=this。$ refs . move _ div . getboundingclientrect()

  if (this.left 0) {

  this.left=0

  } else if(this . left this . width-refs . width){

  this . left=this . width-refs . width

  }

  如果(this.top 0) {

  this.top=0

  } else if(this . top this . height-refs . height){

  this . top=this . height-refs . height

  }

  }

  }

  }

  代码简洁明了。如果你对触控事件有学习需求,可以自己想办法。如果只是想用,复制粘贴改一下就行了。

  这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: