概述

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

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. OkHttp 同步异步操作

    OkHttp是一个Java和Android的HTTP和HTTP/2的客户端,负责发送HTTP请求以及接受HTTP响应. 一.使用OkHttp OkHttp发送请求后,可以通过同步或异步地方式获取响应. ...

  2. selenium之 chromedriver与chrome版本映射表(转载)

    chromedriver版本 支持的Chrome版本 v2.34 v61-63 v2.33 v60-62 v2.32 v59-61 v2.31 v58-60 v2.30 v58-60 v2.29 v5 ...

  3. elasticsearch5安装

    环境: centos7 es 5.4.3 es安装 一.下载 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsear ...

  4. TP-Link 路由器配置 config.bin 解密工具 python 代码 (转载)

    转自吾爱破解 https://www.52pojie.cn/forum.php?mod=viewthread&tid=574222 需要安装crypto #!/usr/bin/env pyth ...

  5. 【VBA】セールの最初起動時、VBAを自動的に実行方法

    方法一 セールの「ThisWorkbook」にて.「Workbook」の「Open」関数にて.ロジックを追加する Private Sub Workbook_Open() Msgbox "He ...

  6. 回溯算法_ BackTracking

     目前还存在的疑问: 1. 所谓的该分支满足条件之后就回退到上一层节点,可是加谁呢? x[i+1]  ?? 加到 N, 不满足target sum条件就返回上一级(同时改变上一级数为 i+1...纵向 ...

  7. JavaSE基础知识(5)—面向对象(5.2类的成员)

    一.属性 1.语法 数据类型 属性名 [= 属性值]; 2.特点 ①属性的数据类型可以为任意类型,包含基本类型或引用类型②属性可以不用手动赋值,有默认值 int——0 double——0.0 char ...

  8. 3P - Snooker

    background: Philip likes to play the QQ game of Snooker when he wants a relax, though he was just a ...

  9. sql中with as测试实例

    一.使用场景 1.多处使用才有必要2.一方面减少代码数量便于理解维护3.一方面跟代码一样一次计算到处用 二.实例(本处示例仅为测试,实际用join比较好) 1.不使用with as 2.使用with ...

  10. Python之路(第三十篇) 网络编程:socket、tcp/ip协议

    一.客户端/服务器架构 1.硬件C/S架构(打印机) 打印机作为一个服务端,电脑连接打印机进行打印 2.软件C/S架构 互联网中处处是C/S架构 如谷歌网站是服务端,你的浏览器是客户端(B/S架构也是 ...