小程序的组件布局
前端页面开发常用的是DIV+CSS布局,但是在小程序中为了达到不同端的兼容,定义了一套的组件标签,比如和div类似的有view。
一、视图容器
1.1 view组件
view是一个块级容器组件,没有特殊功能,主要用于布局展示,类似于DIV+CSS中的div,view具备一套关于点击行为的属性:
hover: 是否启动点击状态,默认值为false
hover-class: 指定按下去的样式,当hover-class="none"时,没有点击效果,默认值为“none”
hover-start-time: 按住后多久出现点击状态,单位毫秒,默认值为50
hover-stay-time: 手指松开后点击状态保留时间,单位毫秒,默认值为400
下面介绍三种常见的布局:
三栏布局
1 | <view style="display: flex;"> |
左右混合布局
1 | <view style="display: flex; height: 400rpx;"> |
上下混合布局
1 | <view style="display: flex; flex-direction: column; height: 400rpx;"> |
1.2 scroll-view组件
该组件容器具备可滑动的能力,尽管我们可以给view组件设置overflow: scroll属性来实现,但是由于小程序没有DOM的概念,不方便于后续处理,因此我们需要用到scroll-view组件,有以下属性:
scroll-x: 允许横向滚动,默认false
scroll-y: 允许纵向滚动,默认false
upper-threshold: 距顶部/左边多远时(单位px)触发scrolltoupper事件,默认50
lower-threshold: 距底部/右边多远时(单位px)触发scrolltolower事件,默认50
scroll-top: 设置竖向滚动条位置
scroll-left: 设置横向滚动条位置
scroll-into-view: 值应为某子元素的id,滚动到该元素时,元素对齐滚动区域顶部
bindscrolltoupper: 滚动到顶部/左边,会触发scrolltoupper事件
bindscrolltolower: 滚动到底部/右边,会触发scrolltolower事件
bindscroll: 滚动时触发事件
目前,请勿在scroll-view中使用textarea、map、canvas、video组件。
1 | <scroll-view class="scroll-container" upper-threshold="0" lower-threshold="100" scroll-into-view="{{toView}}" bindscroll="scroll" bindscrolltolower="scrollToLower" bindscrolltoupper="scrollToUpper" scroll-y="true" scroll-top="{{scrollTop}}"> |
1 | .scroll-container{ |
1 | Page({ |
1.3 滑块视图组件
tabBar可以配置程序顶部或底部菜单样式,可配置属性:
scroll-x: 允许横向滚动,默认false
scroll-y: 允许纵向滚动,默认false
upper-threshold: 距顶部/左边多远时(单位px)触发scrolltoupper事件,默认50
lower-threshold: 距底部/右边多远时(单位px)触发scrolltolower事件,默认50
scroll-top: 设置竖向滚动条位置
scroll-left: 设置横向滚动条位置
scroll-into-view: 值应为某子元素的id,滚动到该元素时,元素对齐滚动区域顶部
bindscrolltoupper: 滚动到顶部/左边,会触发scrolltoupper事件
bindscrolltolower: 滚动到底部/右边,会触发scrolltolower事件
bindscroll: 滚动时触发事件
1 | <swiper class="banner" indicator-dots="true" autoplay="{{autoplay}}" current="0" interval="2000" duration="300" bindchange="change"> |
1 | .banner{ |
1 | Page({ |

- 评分:
- AngularJs项目之ngMock | Joyde·zhong的博客
- AngularJs之指令与控制器之间的交互 | Joyde·zhong的博客
- 18年的年前的工作总结 | Joyde·zhong的博客
- Js文件下载操作 | Joyde·zhong的博客
- vue数据data改变没有触发计算属性 | Joyde·zhong的博客
- 人生所有经过的路,都是必经之路 | Joyde·zhong的博客
- AngularJS通过$location获取及操作当前页面的URL | Joyde·zhong的博客