如果我们要在微信小程序中实现横向滑动展示内容的场景,scroll-view是我们的首选,但是在使用中可能会遇到一些问题,我们结合实际案例记录一下注意点。
以横向滚动隐藏滚动条为例,我们需要给元素设置如下属性:
<!-- 元素不使用flex布局-->
<scroll-view scroll-x="{{true}}" enhanced="{{true}}" show-scrollbar="{{false}}">
<!-- 元素使用flex布局-->
<scroll-view scroll-x="{{true}}" enhanced="{{true}}" show-scrollbar="{{false}}" enable-flex="{{true}}">
| 属性名 | 取值 | 说明 |
|---|---|---|
| scroll-x | true | 允许横向滚动 |
| enhanced | true | 启用 scroll-view 增强特性 |
| show-scrollbar | true | 滚动条显隐控制 (同时开启 enhanced 属性后生效) |
| enable-flex | true | 启用 flexbox 布局。开启后,当前节点声明了 display: flex 就会成为 flex container,并作用于其孩子节点。 |
然后编写样式:
scroll-view{
white-space: nowrap;
}
scroll-view .item{
display: inline-block; /*子元素的display样式需要设置为inline-x,否则元素不能一行显示。*/
}
/*还有一种方式是给scroll-view设置enable-flex属性,通过flex属性进行控制。可以自行尝试*/
注意点:
- 属性值用到了那些设置哪些即可;
- 属性值要用{{}}包裹,尤其是取值为false的情况不这样书写会出现判断异常。例:scroll-x="{{false}}"
- 如果想让子元素使用flex规则进行布局则需要设置属性
enable-flex="true" - 给scroll-view设置不换行的样式
white-space: nowrap; - 给scroll-view包裹的子元素设置inline-x(比如:
inline-blockinline-flex)的样式,使子元素可以一行显示
版权声明:本文为weixin_45438997原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。