首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >微信小程序 滑动到顶部

微信小程序 滑动到顶部

作者头像
yechaoa
发布2022-06-10 14:28:25
发布2022-06-10 14:28:25
9810
举报
文章被收录于专栏:移动开发专栏移动开发专栏

效果:

点击上图中右下角的图标滑动到顶部。 其实很简单,但也有一些小细节。

1.确定图标按钮的位置

使用绝对位置使其固定在右下角的位置。

wxml:

代码语言:javascript
复制
<icon type="download" size="45" color="#4caf50" bindtap='scrollTop'/>

这里使用官方的下载图标,然后修改了一下颜色。

wxss:

代码语言:javascript
复制
icon[type=download] {
   position: fixed;
   bottom: 30px;
   right: 20px;
   transform: rotate(180deg);
}
  • 为了使其不跟随滑动,修改了positionfixed
  • 原本箭头是向下的,使用transform: rotate(180deg)旋转180度向上。

2.绑定事件

bindtap='scrollTop'

代码语言:javascript
复制
   scrollTop: function() {
      wx.pageScrollTo({
         scrollTop: 0,
         duration: 300
      })
   },

在事件中,我们使用了官方的API wx.pageScrollTo,两个参数,一个是滑动的位置,一个是执行时长。

到此,滑动到顶部的功能就简单实现了。

3.进阶

为什么会有这一步呢,是因为发现无论滑动的距离是远还是近,执行时长都是300,那能不能优化呢,其实是可以的。

微信page中有一个onPageScroll方法(与onLoad平级),监听用户滑动页面事件。 那我们就可以根据滑动的距离动态设置执行时长了。

把时长定义为变量

代码语言:javascript
复制
data: {
      scrollDuration: 500,
   },

在监听事件中赋值

代码语言:javascript
复制
   onPageScroll: function(e) {
      console.log(e.scrollTop)
      this.setData({
         scrollDuration: e.scrollTop / 2
      });
   }
  • e.scrollTop即为页面滑动距离
  • e.scrollTop / 2为执行时长,也可以设置其他值
  • 官方提示:请避免在 onPageScroll 中过于频繁的执行 setData 等引起逻辑层-渲染层通信的操作。

修改滑动方法

代码语言:javascript
复制
   scrollTop: function() {
      wx.pageScrollTo({
         scrollTop: 0,
         duration: this.data.scrollDuration
      })
   },

ok,到此就全部完成了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-09-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 效果:
  • 1.确定图标按钮的位置
    • wxml:
    • wxss:
  • 2.绑定事件
  • 3.进阶
    • 把时长定义为变量
    • 在监听事件中赋值
    • 修改滑动方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档