解决小程序scrollintoview无效果的问题

7次阅读

共计 863 个字符,预计需要花费 3 分钟才能阅读完成。

scroll-view 的 scroll-into-view 无效,在支付宝小程序里 scroll-into-view 随着点击事件而改变,但是就是不会滚动,代码如下:
<scroll-view scroll-y=”true” style=”height:100%;” scroll-into-view=”{{scrollTopId}}” scroll-with-animation=”true” enable-back-to-top=”true”>
查了好久,终于找到一篇有用的文章,是 style 中的 height 设置了 100% 导致的。由于微信小程序是用 mpvue 写的,height 设置了 100% 还能滚动,所以一直没想到原生的会有不一样的效果。

以下内容转自 http://blog.sina.com.cn/s/blo…

实际上,这里需要一些注意的地方:
scroll-view 默认跟 view 是一样的,只是一个 view 容器,默认会随着内容大小自动改变大小。只有当你的 scroll-view 的大小,小于其内的内容时,才有机会实现真正的滚动。所以,你必须设置固定的宽高,如果不设置,那与滚动相关的功能都不会有。看似可以滚动,那个不是 scroll-view 的,而是 window 本身的滚动。造成了错觉。

既然如此,很多人设置了 100% 的高度,依然不行,这里必须设置固定的高度如 400rpx 之类的。不支持 % 单位。
不信你试试!

还有一些其他问题会导致 scroll-into-view 失效的情况,比如:

下面是显示 list 和滚动到 list 同时 setdata,不会成功

this.setData({showtype:
1, catlistHidden:true,toView: “defaultlist”});

你必须改成,先显示,然后再滚动,分两次折行 setData

this.setData({showtype:
1, catlistHidden:true});

this.setData({toView:
“defaultlist”});// 要先显示才能 scroll-into,否则不会发生

正文完
 0