touchmove拖动元素,处理复杂数据时延时严重
发布于 6 年前 作者 zhujun 13698 次浏览 来自 问答

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 回复

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

必须实时赋值

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

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

capture-catch:touchstart
capture-catch:touchmove
capture-catch:touchend

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

还是有延时

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

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

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

回到顶部