微信小程序实例:跳转到顶部实例

本文转载至http://blog.csdn.net/eadio/article/details/53190624

前瞻:

总所周知,小程序不能操作dom,那么我们要怎么实现在页面滚动到一定条件的时候,显示gotop图标,点击后跳转到页面的顶部呢?

这里小程序有个组件是可以实现的,那就是scroll-view组件,他具有很多的属性,其中我们要利用到以下两个属性来处理:

scroll-top  Number      设置竖向滚动条位置
bindscroll  EventHandle     滚动时触发,event.detail = {scrollLeft, scrollTop, scrollHeight, scrollWidth, deltaX, deltaY}  

通过滚动触发事件,获取距离文档顶部的scrollTop值,当达到一定条件【>300】的时候,显示gotop层,针对这个层写点击事件,重新设置scroll-top值,偶然间发现设置scroll-top的一个bug,如果我下一次设置的值和本次scroll-top值是一样的,那么文档并不会有任何动作。因此我的做法是在0和1之间切换设置,具体做法如下:

  
  
123456  
----{{test}}  
  
  
  
  
//js文件
Page({  
  data:{  
  
    test:"",  
    scrollTop: {  
      scroll_top: 0,  
      goTop_show: false  
    }  
  },  
  scrollTopFun: function(e){  
    console.log(e.detail);  
    if(e.detail.scrollTop > 300){//触发gotop的显示条件  
      this.setData({  
        'scrollTop.goTop_show': true  
      });  
      console.log(this.data.scrollTop)  
    }else{  
      this.setData({  
        'scrollTop.goTop_show': false  
      });  
    }  
  },  
  goTopFun: function(e){  
    var _top=this.data.scrollTop.scroll_top;//发现设置scroll-top值不能和上一次的值一样,否则无效,所以这里加了个判断  
    if(_top==1){  
      _top=0;  
    }else{  
      _top=1;  
    }  
    this.setData({  
      'scrollTop.scroll_top': _top  
    });  
    console.log("----");  
    console.log(this.data.scrollTop)  
  }  
})  

最终演示效果如下:


你可能感兴趣的:(微信小程序实例:跳转到顶部实例)