touchmove拖动元素,处理复杂数据时延时严重

发布于 7 年前作者 zhujun13823 次浏览最后编辑 7 年前来自 ask

bindtouchmove拖动,旋转,缩放元素,setData处理复杂数据时,有明显延时,延时时间大约在半秒到一秒左右,数据简单时延时不明显

我们平台是做商品定制的,需要对多个元素进行拖动,缩放,旋转等功能,元素数据存放在一个数组里,包括top,left,rotate,scale,z-index,中心点等值,touchmove时,用setData对数组赋值,页面展现的效果延时严重

组件用的是movable-view

数据结构

[

    {

        active: true, // 是否选中

        first: true, // 是否第一次加载

        src: ‘’, // 图片链接

        width: 0,  // 父级宽度

        height: 0, // 父级高度

        top: 0, // 父级top值

        left: 0, // 父级left值

        centerX: 0, // 中心点x坐标

        centerY: 0, // 中心点y坐标

        rotate: 0, // 旋转角度

        imgInfo: { // 子级图片信息

            width: 0, // 子级图片宽度

            height: 0, // 子级图片高度

            x: 0, // 子级图片中心点x坐标

            y: 0, // 子级图片中心点y坐标

            top: 0, // 子级图片top值

            left: 0 // 子级图片left值

        },

        z: 1 // z-index值

    }

]

数组length不确定,用户可以任意添加或删除

10 回复
yonglu
yonglu1 楼6 年前

要写判断,不要时时setData,在需要的时候写节流函数

xiulanyang
xiulanyang2 楼6 年前

必须实时赋值

weijun
weijun3 楼6 年前

求解决

fangmao
fangmao4 楼6 年前

拖动元素肯定得赋值啊,难道不是这样赋值吗?

xiulan57
xiulan575 楼6 年前

touchmove时,用setData对数组赋值,是不是赋值太频繁了?

jiezou
jiezou6 楼6 年前
capture-catch:touchstart
capture-catch:touchmove
capture-catch:touchend

全部换掉,是可以做的,但是安卓还是有一点点卡顿,但基本能接受

jie65
jie657 楼6 年前

还是有延时

xiulan98
xiulan988 楼6 年前

js好像有节流一说,这个看你需求的,能实现降低频率或拖动结束后赋值

jiaxiulan
jiaxiulan9 楼6 年前

请问楼主你是怎么用movable-view 做旋转的

fanghan
fanghan10 楼5 年前

PS:手机测试有延时,开发者工具没问题