时间:2019-05-03 来源:小程序工厂
是横向的列表,然后长按之后可以前后移动排序吗?
就是一行一行的列表,然后可以上下拖动进行排序
可以用view的touch事件配合相交状态监听来做。。
有个问题要确认下,列表界面的总的高度是否超过了1屏?
iOS的话,效果可以保证。。但是android。。有待提升
超过一屏了,view的touch事件??有没有代码参考一下呀
超过了1屏的情况下,还要考虑在拖动状态下,滚动怎么处理。。
我先洗个澡。。洗澡回来给你写个简单的touch移动的demo
哇,感谢感谢,
https://developers.weixin.qq.com/s/1UQTFTmX7L39
会用代码片段吗
打开之后,好像wxml显示乱码了,js可以显示
wxml
js
let animation = wx.createAnimation({ timingFunction:'step-start'})
let drift = [0,0]
Page({
start(e) {
this.pageX = e.changedTouches[0].pageX
this.pageY = e.changedTouches[0].pageY
},
move(e) {
let pageX = drift[0] + e.changedTouches[0].pageX - this.pageX
let pageY = drift[1] + e.changedTouches[0].pageY - this.pageY
animation.translate(pageX,pageY).step()
this.setData({
animation: animation.export()
})
},
end(e) {
drift = [drift[0] + e.changedTouches[0].pageX - this.pageX, drift[1] + e.changedTouches[0].pageY - this.pageY]
}
})
wxss
page {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
view {
width: 100rpx;
height: 100rpx;
background-color: red;
}
不知道你的思路是啥,e.changedTouches[0],和drift代表啥呀
就是简单的拖动啊。。
e.changedTouches[0] 是touch事件的参数,表示手指的当前位置,因为支持多手指操作,取第一个。
drift 表示偏移量,移动了一次后,记住当前的偏移量。。你做列表移动的时候,不一定会用到。。
这基本上是比较简单的demo了。。复杂的demo可以点我头像,看看我的经验分享里的代码片段
好的,我再摸索摸索,从来没接触过的领域,感谢感谢
如果没接触过这块,你要做好这个功能,可能要知道以下几个点
1、怎么拖动一个view移动
2、交互监听API
3、如何控制 page或者scroll-view的滚动
遇到问题再来问哟~
我想我应该是不明白怎么拖动view移动,我再看看文档,你真是个好人呐^_^
这。。是好人卡吗
哈哈哈,你要不要体验体验我的程序
哈哈哈 不要~
好吧,继续努力编程 了
这种功能,我可能会直接让产品砍掉,太难了,嘤嘤嘤
躲得过初一 躲不过十五。。总会遇见复杂的。。
其实好像说起来道理就是这样,但是就是真机效果不好