收藏
回答

bindscroll中得到的detail.scrollTop错误

问题模块
API和组件

用setData设scroll-top时,会触发bindscroll的事件,其中得到event.detail.scrollTop的值与设置的值不一致。

大部分情况是对的,偶尔会数值对不上。



<scroll-view bindscroll="onscroll" scroll-x scroll-y style="width:{{width}}px;height:{{height}}px;transform:rotate({{rotate}}deg);position:absolute;top:{{top}}px;left:{{left}}px" bindtouchstart="touchstartCallback" bindtouchmove="touchmoveCallback" bindtouchend="touchendCallback"  scroll-top="{{offsetY}}" scroll-left="{{offsetX}}">


touchendCallback: function (e) {

。。。。

// setTimeout(function(){

that.setData({

offsetX: ox,

offsetY: oy

});

// },1);

console.log({ox, oy}, h, that.imgh, that.data.toy);

。。。。

}

onscroll: function(e){

this.scrollY = e.detail.scrollTop;

this.scrollX = e.detail.scrollLeft;

console.log('onscroll:', this.scrollY);

},


Object {ox: -44, oy: 520.9999999999999} 452.48038624019307 904.9607724803861 18.608541399914643

onscroll: 521

Object {ox: 165, oy: 1363} 904.9607724803861 452.48038624019307 18.608541399914643

onscroll: 1363

Object {ox: 495, oy: 3047} 1809.9215449607723 904.9607724803861 18.608541399914643

onscroll: 3047

Object {ox: 165, oy: 1362.9999999999998} 904.9607724803861 1809.9215449607723 18.608541399914643

onscroll: 3047  此值错误了!

Object {ox: 77.5, oy: 1362.9999999999998} 452.48038624019307 904.9607724803861 37.217082799829285

onscroll: 1363


最后一次编辑于  2017-08-31  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

3 个回答

  • 生灵
    生灵
    2017-09-05

    几天能有人回复?

    2017-09-05
    赞同
    回复
  • 生灵
    生灵
    2017-10-11

    没人理会吖?

    2017-10-11
    赞同
    回复
  • 生灵
    生灵
    2017-10-27

    苹果手机 onscroll 事件,在缓慢滚动时,没有触发吗?

    2017-10-27
    赞同
    回复