收藏
回答

movable-view

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 需求 movable-view 客户端 6.6.5 1.9.90

movable-view在拖动的时候,边拖动边动态设置x,y坐标,之后控件会自己位移一段距离。代码如下

<movable-area style="height: 400px;width: 100%;background: red;">
    <block wx:for="{{list}}">
    <movable-view  data-index='{{index}}' bindchange='move' style="height: 50px; width: 50px; background: blue;"x="{{item.x}}" y="{{item.y}}" direction="all">
    </movable-view>
    </block>
  </movable-area>
 
 
<button class="button-right" style="width:40%;" bindtap="tap">确认</button>


Page({


/**

  * 页面的初始数据

  */

data: {

list:[],

currentPage:0

},


move:function(e){

var dataset = e.target.dataset;

var Index = dataset.index;

this.data.list[Index].x = e.detail.x;

this.data.list[Index].y = e.detail.y;

this.setData({

list:this.data.list

})

console.log(this.data.list)

},


tap:function(e){

var sign = [

{

current:this.data.currentPage,

x:0,

y:0

}

]


this.setData({

list:this.data.list.concat(sign)

})

},



})

Page({
 
  /**
   * 页面的初始数据
   */
  data: {
    list:[],
    currentPage:0
  },
 
  move:function(e){
    var dataset = e.target.dataset;
    var Index = dataset.index;
    this.data.list[Index].x = e.detail.x;
    this.data.list[Index].y = e.detail.y;
    this.setData({
      list:this.data.list
    })
    console.log(this.data.list)
  },
 
  tap:function(e){
    var sign = [
      {
        current:this.data.currentPage,
        x:0,
        y:0
      }
    ]
 
    this.setData({
      list:this.data.list.concat(sign)
    })
  },
 
 
})


最后一次编辑于  2018-05-14
回答关注问题邀请回答
收藏

1 个回答

  • 卢霄霄
    卢霄霄
    2018-05-14

    setData是个异步操作,生效的时候实际位置已经滚过去了,位移一下不是正常的吗?

    2018-05-14
    赞同
    回复 6
    • 走过你的风~
      走过你的风~
      2018-05-14
      大神,有办法处理吗,求教
      2018-05-14
      回复
    • 卢霄霄
      卢霄霄
      2018-05-14回复走过你的风~
      你要做到什么效果啊?就是移动完了之后,记录当前的位置吗?
      2018-05-14
      回复
    • 走过你的风~
      走过你的风~
      2018-05-15回复卢霄霄
      对,移动完成之后记录当前的位置,并且滑块停留在当前位置,不会退一段距离
      2018-05-15
      回复
    • 卢霄霄
      卢霄霄
      2018-05-15回复走过你的风~
      那你没必要把这个位置存在data里,存其他地方吧,this里或者 page外面
      2018-05-15
      回复
    • 走过你的风~
      走过你的风~
      2018-05-15回复卢霄霄
      我是想在pages外面定义两个变量X,Y,然后在监听滑块移动的时候将位置赋值给这两个变量,然后在监听手势抬起的时候把这两个变量赋值setData给滑块的位置坐标中
      2018-05-15
      回复
    查看更多(1)