微信小程序:scroll滑到指定位置
概述
这是我开发微信小程序遇到的坑中的一个,专门记录下来,供以后开发时参考,相信对其他人也有用。
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滑到指定位置的更多相关文章
- 微信小程序页面滚动到指定位置
页面上有一个元素或者组件,id 为 comment 则: var me = this; var query = wx.createSelectorQuery().in(me); query.selec ...
- 运用wxs制作微信小程序左滑功能和跳转,性能更优越
锲子 微信小程序自定义左滑功能加上跳转,换成以往,左滑功能的逻辑一般是在js中实现,但在拖动方面,性能并不是那么的流畅.如今,官方新扩展了一套脚本语言wxs,在IOS设备上运行,性能会比JS快2~20 ...
- 微信小程序--详情页的推荐位置继续打开详情页;返回之后分享等数据不正确问题
问题背景 -- 分享的数据来源 当前在维护的小程序项目使用wepy开发:分享的数据都是通过接口请求后台的形式获得:然后存在了数据data的对象中:类似 定义分享数据 data = { shareDat ...
- 微信小程序经纬度转化为具体位置(逆地址解析)
小程序wx.getLocation只能获取经纬度, 这时候想要具体地址就需要借助第三方sdk(逆地址解析) 我这边第三方以腾讯位置服务举例 一. 首先小程序需要申请wx.getLocation接口权限 ...
- 微信小程序导出当前画布指定区域的内容并生成图片保存到本地相册(canvas)
最近在学小程序,在把当前画布指定区域的内容导出并生成图片保存到本地这个知识点上踩坑了. 这里用到的方法是: wx.canvasToTempFilePath(),该方法作用是把当前画布指定区域的内容导出 ...
- 微信小程序左滑删除
<view class="touch-item {{item.isTouchMove ? 'touch-move-active' : ''}}" data-index=&qu ...
- 微信小程序 -- scroll view
效果图:横向滚动和纵向滚动 scroll view使用方法文档,前面已经介绍查找文档方法,此处不再赘述 一.横向滚动 创建一个页面scroll-nav 然后,在.wxml文件中排版 <!--水平 ...
- 微信小程序左滑删除功能
效果图如下: wxml代码: <view class="container"> <view class="touch-item {{item.isTou ...
- 微信小程序左滑删除未操作有复位效果
1.wxml <!--pages/test/test.wxml--> <view class="page"> <movable-area class= ...
随机推荐
- Maven项目中遇到的问题及其解决方案
Maven中pom报红 1.jdk版本是否符合要求? 2.maven的本地confg中的setting.xml中是否和要求的jdk版本一致? 3.maven本地仓库路径是否正确,即为自己的确定的仓库位 ...
- Balls(扔鸡蛋问题)
4554 BallsThe classic Two Glass Balls brain-teaser is often posed as:“Given two identical glass sphe ...
- redis安装--集群
redis在3.0之后开始支持集群,实际生产中一般也是会部署集群了 redis官方推出了一个叫redis-trib.rb的redis集群工具(存放在源码文件的src目录下):由于redis-trib. ...
- java.lang.String (JDK1.8)
String类实现了java.io.Serializable, Comparable<String>, CharSequence这三个interface. 看了下这三个interface中 ...
- 小程序微信支付java
https://blog.csdn.net/qq_33452819/article/details/70314204#
- OpenStack 安装:基本环境准备
刚刚学完openstack,这几篇文章就算对过去课程的一个总结吧. 首先说说基本的结构:在一台Dell的workstation上面安装了VMware,在VMware上面安装两台CentOS,现在给每台 ...
- DBHelper类
import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import ja ...
- dump、load和dumps、loads的区别
dump: 将dict(字典)转换为str(字符串),并写入json文件中. load: 用于从json文件中读取数据 运行结果: dumps: 将dict(字典)转换为str(字符串). 运行结果: ...
- 9.22 Sans-serif VS Serif
在FCC做题遇到了sans-serif 以及 serif字体,第一次遇到,所以查了一下: 西方国家字母体系分为两类:serif 以及sans serif. 原来Sans-serif是无衬线字体,没有额 ...
- linux用户和组管理,/etc/passwd 、/etc/shadow和/etc/group --学习
一./etc/passwd 和/etc/shadow解释 与用户相关的系统配置文件主要有/etc/passwd 和/etc/shadow,其中/etc/shadow是用户资讯的加密文件,比如用户的密码 ...