小程序
小游戏
企业微信
微信支付
扫描小程序码分享
滑动的时候,会出现卡顿现象,触发的bindscroll 函数会卡顿,应该怎么解决
9 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
惯性滚动无法去掉
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
在手机上,touchend后还有一段惯性滚动,这个也会触发bindscroll,请确认代码逻辑有没有考虑这点。
另外,只是单纯的保存scrollTop的状态,不建议setData,直接this._scrollTop = e.detail.scrollTop即可,只有更新界面才应该用setData
我现在遇到的问题和这个类似 就是想边滚动 边记录滚动的位置 当滚动的位置 大于某个值时 比如 >300 就将更新页面的显示情况 需要通过this.setData({isfixed:true}) 如果小于 <300 this.setData({isfixed:false}) 则设置为 改变页面的某个区域的定位方式 但是反应很迟钝 这个怎么解决
我也是遇到这个问题,请问你是怎么解决的啊~
您好, 我也遇到了相同问题,请问解决了吗
滑动这块的响应是在太不灵敏,最后决定吧有关滑动效果的功能都去掉了,你说的问题确实都有,但是没解决掉,之前就觉得在苹果上还好,android是真的不行
卡顿是如何评估的?
延迟几秒之后才开始执行onpagescroll的方法
暴力解决……
scrollEvent(e) { clearTimeout(this._st) this._st = setTimeout(() => { this.setData({ scrollTop: e.detail.scrollTop }) }, 300) }
我也遇到了,特别在android上
您好 , 这个卡顿问题解决了吗,我也遇到了这个问题
您好,我也遇到这个问题了 有没有解决办法
也遇到了 相同问题 求解答
已经去除滑动着方面的功能了
bindscrolltoupper都会有时候失效
嗯嗯,滚动惯性确实没有考虑的,可能是这个原因吧,在iphone6上面就是会先向上滚一下在滑到指定的view,有什么属性可以去除这个惯性吗。还有变量存值哪里,多谢指教。
在scroll上面绑定了bindscroll和bindtouchend,bindscroll用来保存当前视图距离顶部位置,bindtouchend通过获取bindscroll获取的scrollTop的值判断滑动到某个view;但是在开发者滑的时候没问题,在真机上面停止触碰滑动后,会停留个0.5秒左右的时间在滑到指定的view上面。可能是bindtouchend有问题吧。
<scroll-view scroll-y style="height: {{scrollHeight}}px;" lower-threshold="150" wx:if="{{index == 0}}" bindscrolltolower="loadMore" bindscroll="bindScroll" scroll-into-view="{{recomment_view_id}}" scroll-with-animation="{{true}}" bindtouchend="bindScrollEnd">
bindScroll: function(e){
var that = this;
var scrollTop = e.detail.scrollTop;
var activeIndex = that.data.activeIndex;
if(activeIndex == 0){
that.setData({
recomment_scroll_top: scrollTop
})
}else{
new_scroll_top: scrollTop
}
},
bindScrollEnd: function(e){
var scrollTop = that.data.recomment_scroll_top;
console.log(scrollTop);
if(scrollTop <= 0){
recomment_view_id: 'recomment_refresh'
that.getShaiList(1);
if(scrollTop < 60 && scrollTop > 0){
recomment_view_id: 'recomment_content'
var scrollTop = that.data.new_scroll_top;
new_view_id: 'new_refresh'
new_view_id: 'new_content'
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
惯性滚动无法去掉
在手机上,touchend后还有一段惯性滚动,这个也会触发bindscroll,请确认代码逻辑有没有考虑这点。
另外,只是单纯的保存scrollTop的状态,不建议setData,直接this._scrollTop = e.detail.scrollTop即可,只有更新界面才应该用setData
我现在遇到的问题和这个类似 就是想边滚动 边记录滚动的位置 当滚动的位置 大于某个值时 比如 >300 就将更新页面的显示情况 需要通过this.setData({isfixed:true}) 如果小于 <300 this.setData({isfixed:false}) 则设置为 改变页面的某个区域的定位方式 但是反应很迟钝 这个怎么解决
我也是遇到这个问题,请问你是怎么解决的啊~
您好, 我也遇到了相同问题,请问解决了吗
滑动这块的响应是在太不灵敏,最后决定吧有关滑动效果的功能都去掉了,你说的问题确实都有,但是没解决掉,之前就觉得在苹果上还好,android是真的不行
卡顿是如何评估的?
延迟几秒之后才开始执行onpagescroll的方法
暴力解决……
scrollEvent(e) { clearTimeout(this._st) this._st = setTimeout(() => { this.setData({ scrollTop: e.detail.scrollTop }) }, 300) }
我也遇到了,特别在android上
您好 , 这个卡顿问题解决了吗,我也遇到了这个问题
您好,我也遇到这个问题了 有没有解决办法
也遇到了 相同问题 求解答
您好, 我也遇到了相同问题,请问解决了吗
已经去除滑动着方面的功能了
bindscrolltoupper都会有时候失效
嗯嗯,滚动惯性确实没有考虑的,可能是这个原因吧,在iphone6上面就是会先向上滚一下在滑到指定的view,有什么属性可以去除这个惯性吗。还有变量存值哪里,多谢指教。
在scroll上面绑定了bindscroll和bindtouchend,bindscroll用来保存当前视图距离顶部位置,bindtouchend通过获取bindscroll获取的scrollTop的值判断滑动到某个view;但是在开发者滑的时候没问题,在真机上面停止触碰滑动后,会停留个0.5秒左右的时间在滑到指定的view上面。可能是bindtouchend有问题吧。
<scroll-view scroll-y style="height: {{scrollHeight}}px;" lower-threshold="150" wx:if="{{index == 0}}" bindscrolltolower="loadMore" bindscroll="bindScroll" scroll-into-view="{{recomment_view_id}}" scroll-with-animation="{{true}}" bindtouchend="bindScrollEnd">
bindScroll: function(e){
var that = this;
var scrollTop = e.detail.scrollTop;
var activeIndex = that.data.activeIndex;
if(activeIndex == 0){
that.setData({
recomment_scroll_top: scrollTop
})
}else{
that.setData({
new_scroll_top: scrollTop
})
}
},
bindScrollEnd: function(e){
var that = this;
var activeIndex = that.data.activeIndex;
if(activeIndex == 0){
var scrollTop = that.data.recomment_scroll_top;
console.log(scrollTop);
if(scrollTop <= 0){
that.setData({
recomment_view_id: 'recomment_refresh'
})
that.getShaiList(1);
}
if(scrollTop < 60 && scrollTop > 0){
that.setData({
recomment_view_id: 'recomment_content'
})
}
}else{
var scrollTop = that.data.new_scroll_top;
if(scrollTop <= 0){
that.setData({
new_view_id: 'new_refresh'
})
that.getShaiList(1);
}
if(scrollTop < 60 && scrollTop > 0){
that.setData({
new_view_id: 'new_content'
})
}
}
},