bindscroll 延迟怎么办
发布于 6 年前 作者 jiesun 5483 次浏览 来自 问答

想要 实现滚动页面购物车向右滑动隐藏,停止滚动向左滑动显示,但是bindscroll有延迟,是因为造成了大量的setData吗

js代码:

var start = e.detail.scrollTop;

this.setData({

iSscroll: true

})

clearTimeout(timer);

var timer = setTimeout(() => {

var end = e.detail.scrollTop;

if (end == start) {

this.setData({

iSscroll: false

})

console.log(‘停止滚动了’);

}

}, 100);

3 回复

试试这样

this.data.count = 0

onScroll() {

    this.data.count += 1

    if (this.data.count == 20) {

        this.data.count = 0

        this.setData({})

    }

}

请教下,如果是左右双联动(像电商类分类页面,左侧是一级分类,右侧是二级分类是)。右侧内容滚动时,对应滚动并选中到左侧一级分类,如果用定时器的这种方式,滚动稍快的话,滚动到左侧一级分类,会有一跳一跳的效果。是否还有其它的优化方案?

100ms调用一次setData。清除定时的方法似乎这么写没有用吧。每次调用都会生成一个新的time_id.这样肯定不行吧。

回到顶部