概述

这是我开发微信小程序遇到的坑中的一个,专门记录下来,供以后开发时参考,相信对其他人也有用。

scroll滑到指定位置,有两种解决方案,一种是用scroll-view标签,另一种是用wx.pageScrollTo这个api。

用scroll-view标签

这个标签适合于屏幕内的小范围滚动和锚点滚动,分别通过scroll-top和scroll-into-view这两个标签属性来实现。注意这是标签内属性,所以需要动态改变的话,就需要用this.setData动态设置scroll-top和scroll-into-view的值。例子如下:

//wxml
<scroll-view scroll-y style="height: 200px;"" scroll-top="{{scrollTop}} scroll-into-view="{{toView}}">
<view id="yellow" class="scroll-view-item bc_yellow"></view>
<view id="blue" class="scroll-view-item bc_blue"></view>
</scroll-view> //wxs
Page({
data: {
toView: 'blue',
scrollTop: 100
}
})

这里有一个坑就是scroll-view一定要设置高度属性,而且不能是百分比。所以为了使scroll-view自适应屏幕高度,我们一般用wx.getSystemInfo获取屏幕高度,然后动态设置。例子如下:

//wxml
<scroll-view scroll-y="true" style="height:{{scrollHeight}}px;"> //wxs
var that = this;
wx.getSystemInfo({
success: function (res) {
that.setData({
scrollHeight: res.windowHeight
});
}
});

如果有其它需求的话,可以把上面的res.windowHeight换成各种运算。

用pageScrollTo方法

这种方法适用于屏幕的大范围滚动,并且不支持锚点滚动。

wx.pageScrollTo方法和原生js方法有点类似,不过它是接受一个对象为参数。用法如下,把100改成想要的值即可。

wx.pageScrollTo({
scrollTop: 100
})

但是这里有一个坑,就是这个方法不管是放在onLoad还是放在onReady或者onShow里面都是无效的,具体原因不明。所以一般运用就是用事件触发

微信小程序:scroll滑到指定位置的更多相关文章

  1. 微信小程序页面滚动到指定位置

    页面上有一个元素或者组件,id 为 comment 则: var me = this; var query = wx.createSelectorQuery().in(me); query.selec ...

  2. 运用wxs制作微信小程序左滑功能和跳转,性能更优越

    锲子 微信小程序自定义左滑功能加上跳转,换成以往,左滑功能的逻辑一般是在js中实现,但在拖动方面,性能并不是那么的流畅.如今,官方新扩展了一套脚本语言wxs,在IOS设备上运行,性能会比JS快2~20 ...

  3. 微信小程序--详情页的推荐位置继续打开详情页;返回之后分享等数据不正确问题

    问题背景 -- 分享的数据来源 当前在维护的小程序项目使用wepy开发:分享的数据都是通过接口请求后台的形式获得:然后存在了数据data的对象中:类似 定义分享数据 data = { shareDat ...

  4. 微信小程序经纬度转化为具体位置(逆地址解析)

    小程序wx.getLocation只能获取经纬度, 这时候想要具体地址就需要借助第三方sdk(逆地址解析) 我这边第三方以腾讯位置服务举例 一. 首先小程序需要申请wx.getLocation接口权限 ...

  5. 微信小程序导出当前画布指定区域的内容并生成图片保存到本地相册(canvas)

    最近在学小程序,在把当前画布指定区域的内容导出并生成图片保存到本地这个知识点上踩坑了. 这里用到的方法是: wx.canvasToTempFilePath(),该方法作用是把当前画布指定区域的内容导出 ...

  6. 微信小程序左滑删除

    <view class="touch-item {{item.isTouchMove ? 'touch-move-active' : ''}}" data-index=&qu ...

  7. 微信小程序 -- scroll view

    效果图:横向滚动和纵向滚动 scroll view使用方法文档,前面已经介绍查找文档方法,此处不再赘述 一.横向滚动 创建一个页面scroll-nav 然后,在.wxml文件中排版 <!--水平 ...

  8. 微信小程序左滑删除功能

    效果图如下: wxml代码: <view class="container"> <view class="touch-item {{item.isTou ...

  9. 微信小程序左滑删除未操作有复位效果

    1.wxml <!--pages/test/test.wxml--> <view class="page"> <movable-area class= ...

随机推荐

  1. 记账本,C,Github,entity

    package entity; public class Category { private int id; private String name; private int recordNumbe ...

  2. SpringCloud详解

    来源于纯洁的微笑 http://www.ityouknow.com/spring-cloud.html

  3. azkaban 配置邮件

    1.配置邮件请在azkaban-web-server中进行配置:如下图:      /opt/azkaban/azkaban/azkaban-web-server/build/install/azka ...

  4. 《CSAPP》 可重定位目标文件格式

    可重定位目标文件 ELF文件 ELF头以一个16字节的序列开始,这个序列描述了生成该文件的系统的字的大小和字节顺序.ELF头剩下的部分包含帮助链接器语法分析和解释目标文件的信息.其中包括ELF头的大小 ...

  5. maven项目update报错

    MAVEN项目报错:An internal error occurred during: "Updating Maven Project" java.lang.NullPoint ...

  6. oracle 执行顺序 select查询优化

    今天把这几天做的练习复习了一下,不知道自己写得代码执行的效率如何以及要如何提高,于是乎上网开始研究一些材料,现整理如下: 首先,要了解在Oracle中Sql语句运行的机制.以下是sql语句的执行步骤: ...

  7. springboot与缓存(redis,或者caffeine,guava)

    1.理论介绍 Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, Cache, Entry 和 Expiry. CachingProvide ...

  8. C# 检测证书是否安装、 安装证书

    检测是否存在指定的证书: /// <summary> /// 检测是否存在指定的证书 /// </summary> /// <returns></return ...

  9. 选择困难症的福音——团队Scrum冲刺阶段-Day 4

    选择困难症的福音--团队Scrum冲刺阶段-Day 4 今日进展 编写提问部分 做了不同问题所对应的游戏选项,但关于游戏分类的界面还没有做完 增加功能 昨天在主界面增加"关于我们" ...

  10. linux批量修改文件中包含字符串的查找替换

    find -name "*.env" | xargs perl -pi -e 's|\babcdefg\b|hahaha|g' .env 文件中abcdef 改为hahaha