js-components-container-div.md 28.8 KB
Newer Older
Z
zengyawen 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
# div<a name="ZH-CN_TOPIC_0000001127125106"></a>

基础容器,用作页面结构的根节点或将内容进行分组。

## 权限列表<a name="section11257113618419"></a>



## 子组件<a name="section9288143101012"></a>

支持。

## 属性<a name="section2907183951110"></a>

支持[通用属性](js-components-common-attributes.md)

## 样式<a name="section10683162023215"></a>

除支持[组件通用样式](js-components-common-styles.md)外,还支持如下样式:

Z
zengyawen 已提交
21
<table><thead align="left"><tr><th class="cellrowborder" valign="top" width="21.18788121187881%" id="mcps1.1.6.1.1"><p>名称</p>
Z
zengyawen 已提交
22
</th>
Z
zengyawen 已提交
23
<th class="cellrowborder" valign="top" width="16.648335166483353%" id="mcps1.1.6.1.2"><p>类型</p>
Z
zengyawen 已提交
24
</th>
Z
zengyawen 已提交
25
<th class="cellrowborder" valign="top" width="13.618638136186382%" id="mcps1.1.6.1.3"><p>默认值</p>
Z
zengyawen 已提交
26
</th>
Z
zengyawen 已提交
27
<th class="cellrowborder" valign="top" width="7.329267073292671%" id="mcps1.1.6.1.4"><p>必填</p>
Z
zengyawen 已提交
28
</th>
Z
zengyawen 已提交
29
<th class="cellrowborder" valign="top" width="41.21587841215879%" id="mcps1.1.6.1.5"><p>描述</p>
Z
zengyawen 已提交
30 31 32
</th>
</tr>
</thead>
Z
zengyawen 已提交
33
<tbody><tr><td class="cellrowborder" valign="top" width="21.18788121187881%" headers="mcps1.1.6.1.1 "><p>flex-direction</p>
Z
zengyawen 已提交
34
</td>
Z
zengyawen 已提交
35
<td class="cellrowborder" valign="top" width="16.648335166483353%" headers="mcps1.1.6.1.2 "><p>string</p>
Z
zengyawen 已提交
36
</td>
Z
zengyawen 已提交
37
<td class="cellrowborder" valign="top" width="13.618638136186382%" headers="mcps1.1.6.1.3 "><p>row</p>
Z
zengyawen 已提交
38
</td>
Z
zengyawen 已提交
39
<td class="cellrowborder" valign="top" width="7.329267073292671%" headers="mcps1.1.6.1.4 "><p></p>
Z
zengyawen 已提交
40
</td>
Z
zengyawen 已提交
41 42
<td class="cellrowborder" valign="top" width="41.21587841215879%" headers="mcps1.1.6.1.5 "><p>flex容器主轴方向。可选项有:</p>
<ul><li>column:垂直方向从上到下。</li><li>row:水平方向从左到右。</li></ul>
Z
zengyawen 已提交
43 44
</td>
</tr>
Z
zengyawen 已提交
45
<tr><td class="cellrowborder" valign="top" width="21.18788121187881%" headers="mcps1.1.6.1.1 "><p>flex-wrap</p>
Z
zengyawen 已提交
46
</td>
Z
zengyawen 已提交
47
<td class="cellrowborder" valign="top" width="16.648335166483353%" headers="mcps1.1.6.1.2 "><p>string</p>
Z
zengyawen 已提交
48
</td>
Z
zengyawen 已提交
49
<td class="cellrowborder" valign="top" width="13.618638136186382%" headers="mcps1.1.6.1.3 "><p>nowrap</p>
Z
zengyawen 已提交
50
</td>
Z
zengyawen 已提交
51
<td class="cellrowborder" valign="top" width="7.329267073292671%" headers="mcps1.1.6.1.4 "><p></p>
Z
zengyawen 已提交
52
</td>
Z
zengyawen 已提交
53 54
<td class="cellrowborder" valign="top" width="41.21587841215879%" headers="mcps1.1.6.1.5 "><p>flex容器是单行还是多行显示,该值暂不支持动态修改。可选项有:</p>
<ul><li>nowrap:不换行,单行显示。</li><li>wrap:换行,多行显示。</li></ul>
Z
zengyawen 已提交
55 56
</td>
</tr>
Z
zengyawen 已提交
57
<tr><td class="cellrowborder" valign="top" width="21.18788121187881%" headers="mcps1.1.6.1.1 "><p>justify-content</p>
Z
zengyawen 已提交
58
</td>
Z
zengyawen 已提交
59
<td class="cellrowborder" valign="top" width="16.648335166483353%" headers="mcps1.1.6.1.2 "><p>string</p>
Z
zengyawen 已提交
60
</td>
Z
zengyawen 已提交
61
<td class="cellrowborder" valign="top" width="13.618638136186382%" headers="mcps1.1.6.1.3 "><p>flex-start</p>
Z
zengyawen 已提交
62
</td>
Z
zengyawen 已提交
63
<td class="cellrowborder" valign="top" width="7.329267073292671%" headers="mcps1.1.6.1.4 "><p></p>
Z
zengyawen 已提交
64
</td>
Z
zengyawen 已提交
65 66
<td class="cellrowborder" valign="top" width="41.21587841215879%" headers="mcps1.1.6.1.5 "><p>flex容器当前行的主轴对齐格式。可选项有:</p>
<ul><li>flex-start:项目位于容器的开头。</li><li>flex-end:项目位于容器的结尾。</li><li>center:项目位于容器的中心。</li><li>space-between:项目位于各行之间留有空白的容器内。</li><li>space-around:项目位于各行之前、之间、之后都留有空白的容器内。</li><li>space-evenly<sup><span>5+</span></sup>:  均匀排列每个元素,每个元素之间的间隔相等。</li></ul>
Z
zengyawen 已提交
67 68
</td>
</tr>
Z
zengyawen 已提交
69
<tr><td class="cellrowborder" valign="top" width="21.18788121187881%" headers="mcps1.1.6.1.1 "><p>align-items</p>
Z
zengyawen 已提交
70
</td>
Z
zengyawen 已提交
71
<td class="cellrowborder" valign="top" width="16.648335166483353%" headers="mcps1.1.6.1.2 "><p>string</p>
Z
zengyawen 已提交
72
</td>
Z
zengyawen 已提交
73
<td class="cellrowborder" valign="top" width="13.618638136186382%" headers="mcps1.1.6.1.3 "><p>stretch</p>
Z
zengyawen 已提交
74
</td>
Z
zengyawen 已提交
75
<td class="cellrowborder" valign="top" width="7.329267073292671%" headers="mcps1.1.6.1.4 "><p></p>
Z
zengyawen 已提交
76
</td>
Z
zengyawen 已提交
77 78
<td class="cellrowborder" valign="top" width="41.21587841215879%" headers="mcps1.1.6.1.5 "><p>flex容器当前行的交叉轴对齐格式,可选值为:</p>
<ul><li>stretch:弹性元素在交叉轴方向被拉伸到与容器相同的高度或宽度。</li><li>flex-start:元素向交叉轴起点对齐。</li><li>flex-end:元素向交叉轴终点对齐。</li><li>center:元素在交叉轴居中。</li></ul>
Z
zengyawen 已提交
79 80
</td>
</tr>
Z
zengyawen 已提交
81
<tr><td class="cellrowborder" valign="top" width="21.18788121187881%" headers="mcps1.1.6.1.1 "><p>align-content</p>
Z
zengyawen 已提交
82
</td>
Z
zengyawen 已提交
83
<td class="cellrowborder" valign="top" width="16.648335166483353%" headers="mcps1.1.6.1.2 "><p>string</p>
Z
zengyawen 已提交
84
</td>
Z
zengyawen 已提交
85
<td class="cellrowborder" valign="top" width="13.618638136186382%" headers="mcps1.1.6.1.3 "><p>flex-start</p>
Z
zengyawen 已提交
86
</td>
Z
zengyawen 已提交
87
<td class="cellrowborder" valign="top" width="7.329267073292671%" headers="mcps1.1.6.1.4 "><p></p>
Z
zengyawen 已提交
88
</td>
Z
zengyawen 已提交
89 90
<td class="cellrowborder" valign="top" width="41.21587841215879%" headers="mcps1.1.6.1.5 "><p>交叉轴中有额外的空间时,多行内容对齐格式,可选值为:</p>
<ul><li>flex-start:所有行从交叉轴起点开始填充。第一行的交叉轴起点边和容器的交叉轴起点边对齐。接下来的每一行紧跟前一行。</li><li>flex-end:所有行从交叉轴末尾开始填充。最后一行的交叉轴终点和容器的交叉轴终点对齐。同时所有后续行与前一个对齐。</li><li>center:所有行朝向容器的中心填充。每行互相紧挨,相对于容器居中对齐。容器的交叉轴起点边和第一行的距离相等于容器的交叉轴终点边和最后一行的距离。</li><li>space-between:所有行在容器中平均分布。相邻两行间距相等。容器的交叉轴起点边和终点边分别与第一行和最后一行的边对齐。</li><li>space-around:所有行在容器中平均分布,相邻两行间距相等。容器的交叉轴起点边和终点边分别与第一行和最后一行的距离是相邻两行间距的一半。</li></ul>
Z
zengyawen 已提交
91 92
</td>
</tr>
Z
zengyawen 已提交
93
<tr><td class="cellrowborder" valign="top" width="21.18788121187881%" headers="mcps1.1.6.1.1 "><p>display</p>
Z
zengyawen 已提交
94
</td>
Z
zengyawen 已提交
95
<td class="cellrowborder" valign="top" width="16.648335166483353%" headers="mcps1.1.6.1.2 "><p>string</p>
Z
zengyawen 已提交
96
</td>
Z
zengyawen 已提交
97
<td class="cellrowborder" valign="top" width="13.618638136186382%" headers="mcps1.1.6.1.3 "><p>flex</p>
Z
zengyawen 已提交
98
</td>
Z
zengyawen 已提交
99
<td class="cellrowborder" valign="top" width="7.329267073292671%" headers="mcps1.1.6.1.4 "><p></p>
Z
zengyawen 已提交
100
</td>
Z
zengyawen 已提交
101 102
<td class="cellrowborder" valign="top" width="41.21587841215879%" headers="mcps1.1.6.1.5 "><p>确定该元素视图框的类型,该值暂不支持动态修改。可选值为:</p>
<ul><li>flex:弹性布局</li><li>grid:网格布局</li><li>none:不渲染此元素</li></ul>
Z
zengyawen 已提交
103 104
</td>
</tr>
Z
zengyawen 已提交
105
<tr><td class="cellrowborder" valign="top" width="21.18788121187881%" headers="mcps1.1.6.1.1 "><p>grid-template-[columns|rows]</p>
Z
zengyawen 已提交
106
</td>
Z
zengyawen 已提交
107
<td class="cellrowborder" valign="top" width="16.648335166483353%" headers="mcps1.1.6.1.2 "><p>string</p>
Z
zengyawen 已提交
108
</td>
Z
zengyawen 已提交
109
<td class="cellrowborder" valign="top" width="13.618638136186382%" headers="mcps1.1.6.1.3 "><p>1行1列</p>
Z
zengyawen 已提交
110
</td>
Z
zengyawen 已提交
111
<td class="cellrowborder" valign="top" width="7.329267073292671%" headers="mcps1.1.6.1.4 "><p></p>
Z
zengyawen 已提交
112
</td>
Z
zengyawen 已提交
113 114 115
<td class="cellrowborder" valign="top" width="41.21587841215879%" headers="mcps1.1.6.1.5 "><p>用于设置当前网格布局行和列的数量,不设置时默认1行1列,仅当display为grid时生效。</p>
<p>示例:如设置grid-template-columns为:</p>
<ul><li>50px 100px 60px:分三列,第一列50px,第二列100px,第三列60px;</li><li>1fr 1fr 2fr:分三列,将父组件允许的宽分为4等份,第一列占1份,第二列占一份,第三列占2份;</li><li>30% 20% 50%:分三列,将父组件允许的宽为基准,第一列占30%,第二列占20%,第三列占50%;</li><li>repeat(2,100px):分两列,第一列100px,第二列100px;</li><li>repeat(auto-fill,100px)<sup>5+</sup>:按照每列100px的大小和交叉轴大小计算最大正整数重复次数,按照该重复次数布满交叉轴;</li><li>auto 1fr 1fr:分三列,第一列自适应内部子组件所需宽度,剩余空间分为两等份,第二列占一份,第三列占一份。</li></ul>
Z
zengyawen 已提交
116 117
</td>
</tr>
Z
zengyawen 已提交
118
<tr><td class="cellrowborder" valign="top" width="21.18788121187881%" headers="mcps1.1.6.1.1 "><p>grid-[columns|rows]-gap</p>
Z
zengyawen 已提交
119
</td>
Z
zengyawen 已提交
120
<td class="cellrowborder" valign="top" width="16.648335166483353%" headers="mcps1.1.6.1.2 "><p>&lt;length&gt;</p>
Z
zengyawen 已提交
121
</td>
Z
zengyawen 已提交
122
<td class="cellrowborder" valign="top" width="13.618638136186382%" headers="mcps1.1.6.1.3 "><p>0</p>
Z
zengyawen 已提交
123
</td>
Z
zengyawen 已提交
124
<td class="cellrowborder" valign="top" width="7.329267073292671%" headers="mcps1.1.6.1.4 "><p></p>
Z
zengyawen 已提交
125
</td>
Z
zengyawen 已提交
126
<td class="cellrowborder" valign="top" width="41.21587841215879%" headers="mcps1.1.6.1.5 "><p>用于设置行与行的间距或者列与列的间距,也可以支持通过grid-gap设置相同的行列间距,仅当display为grid时生效。</p>
Z
zengyawen 已提交
127 128
</td>
</tr>
Z
zengyawen 已提交
129
<tr><td class="cellrowborder" valign="top" width="21.18788121187881%" headers="mcps1.1.6.1.1 "><p>grid-row-[start|end]</p>
Z
zengyawen 已提交
130
</td>
Z
zengyawen 已提交
131
<td class="cellrowborder" valign="top" width="16.648335166483353%" headers="mcps1.1.6.1.2 "><p>number</p>
Z
zengyawen 已提交
132
</td>
Z
zengyawen 已提交
133
<td class="cellrowborder" valign="top" width="13.618638136186382%" headers="mcps1.1.6.1.3 "><p>-</p>
Z
zengyawen 已提交
134
</td>
Z
zengyawen 已提交
135
<td class="cellrowborder" valign="top" width="7.329267073292671%" headers="mcps1.1.6.1.4 "><p></p>
Z
zengyawen 已提交
136
</td>
Z
zengyawen 已提交
137
<td class="cellrowborder" valign="top" width="41.21587841215879%" headers="mcps1.1.6.1.5 "><p>用于设置当前元素在网格布局中的起止行号,仅当父组件display样式为grid时生效(仅div支持display样式设置为grid)。</p>
Z
zengyawen 已提交
138 139
</td>
</tr>
Z
zengyawen 已提交
140
<tr><td class="cellrowborder" valign="top" width="21.18788121187881%" headers="mcps1.1.6.1.1 "><p>grid-column-[start|end]</p>
Z
zengyawen 已提交
141
</td>
Z
zengyawen 已提交
142
<td class="cellrowborder" valign="top" width="16.648335166483353%" headers="mcps1.1.6.1.2 "><p>number</p>
Z
zengyawen 已提交
143
</td>
Z
zengyawen 已提交
144
<td class="cellrowborder" valign="top" width="13.618638136186382%" headers="mcps1.1.6.1.3 "><p>-</p>
Z
zengyawen 已提交
145
</td>
Z
zengyawen 已提交
146
<td class="cellrowborder" valign="top" width="7.329267073292671%" headers="mcps1.1.6.1.4 "><p></p>
Z
zengyawen 已提交
147
</td>
Z
zengyawen 已提交
148
<td class="cellrowborder" valign="top" width="41.21587841215879%" headers="mcps1.1.6.1.5 "><p>用于设置当前元素在网格布局中的起止列号,仅当父组件display样式为grid时生效(仅div支持display样式设置为grid)。</p>
Z
zengyawen 已提交
149 150
</td>
</tr>
Z
zengyawen 已提交
151
<tr><td class="cellrowborder" valign="top" width="21.18788121187881%" headers="mcps1.1.6.1.1 "><p>grid-auto-flow<sup>5+</sup></p>
Z
zengyawen 已提交
152
</td>
Z
zengyawen 已提交
153
<td class="cellrowborder" valign="top" width="16.648335166483353%" headers="mcps1.1.6.1.2 "><p>string</p>
Z
zengyawen 已提交
154
</td>
Z
zengyawen 已提交
155
<td class="cellrowborder" valign="top" width="13.618638136186382%" headers="mcps1.1.6.1.3 "><p>-</p>
Z
zengyawen 已提交
156
</td>
Z
zengyawen 已提交
157
<td class="cellrowborder" valign="top" width="7.329267073292671%" headers="mcps1.1.6.1.4 "><p></p>
Z
zengyawen 已提交
158
</td>
Z
zengyawen 已提交
159 160
<td class="cellrowborder" valign="top" width="41.21587841215879%" headers="mcps1.1.6.1.5 "><p>使用框架自动布局算法进行网格的布局,可选值为:</p>
<ul><li>row:逐行填充元素,如果行空间不够,则新增行;</li><li>column:逐列填充元素,如果列空间不够,则新增列。</li></ul>
Z
zengyawen 已提交
161 162
</td>
</tr>
Z
zengyawen 已提交
163
<tr><td class="cellrowborder" valign="top" width="21.18788121187881%" headers="mcps1.1.6.1.1 "><p>overflow<sup>6+</sup></p>
Z
zengyawen 已提交
164
</td>
Z
zengyawen 已提交
165
<td class="cellrowborder" valign="top" width="16.648335166483353%" headers="mcps1.1.6.1.2 "><p>string</p>
Z
zengyawen 已提交
166
</td>
Z
zengyawen 已提交
167
<td class="cellrowborder" valign="top" width="13.618638136186382%" headers="mcps1.1.6.1.3 "><p>visible</p>
Z
zengyawen 已提交
168
</td>
Z
zengyawen 已提交
169
<td class="cellrowborder" valign="top" width="7.329267073292671%" headers="mcps1.1.6.1.4 "><p></p>
Z
zengyawen 已提交
170
</td>
Z
zengyawen 已提交
171 172 173
<td class="cellrowborder" valign="top" width="41.21587841215879%" headers="mcps1.1.6.1.5 "><p>设置元素内容区超过元素本身大小时的表现形式。</p>
<ul><li>visible:多个子元素内容超过元素大小时,显示在元素外面;</li><li>hidden:元素内容超过元素大小时,进行裁切显示;</li><li>scroll:元素内容超过元素大小时,进行滚动显示并展示滚动条(当前只支持纵向)。</li></ul>
<div class="note"><span class="notetitle"> 说明: </span><div class="notebody"><ul><li>overflow: scroll样式需要元素设置固定的大小。</li></ul>
Z
zengyawen 已提交
174 175 176
</div></div>
</td>
</tr>
Z
zengyawen 已提交
177
<tr><td class="cellrowborder" valign="top" width="21.18788121187881%" headers="mcps1.1.6.1.1 "><p>align-items<sup><span>6+</span></sup></p>
Z
zengyawen 已提交
178
</td>
Z
zengyawen 已提交
179
<td class="cellrowborder" valign="top" width="16.648335166483353%" headers="mcps1.1.6.1.2 "><p>string</p>
Z
zengyawen 已提交
180
</td>
Z
zengyawen 已提交
181
<td class="cellrowborder" valign="top" width="13.618638136186382%" headers="mcps1.1.6.1.3 "><p>-</p>
Z
zengyawen 已提交
182
</td>
Z
zengyawen 已提交
183
<td class="cellrowborder" valign="top" width="7.329267073292671%" headers="mcps1.1.6.1.4 "><p></p>
Z
zengyawen 已提交
184
</td>
Z
zengyawen 已提交
185 186
<td class="cellrowborder" valign="top" width="41.21587841215879%" headers="mcps1.1.6.1.5 "><p>设置容器中元素交叉轴上的对齐方式:</p>
<ul><li>stretch:Flex容器内容在交叉轴方向被拉伸到与容器相同的高度或宽度;</li><li>flex-start:Flex布局容器内元素向交叉轴起点对齐;</li><li>flex-end:Flex布局容器内元素向交叉轴终点对齐;</li><li>center:Flex布局容器内元素在交叉轴居中对齐;</li><li>baseline:如Flex布局纵向排列,则该值与'flex-start'等效。横向布局时,内容元素存在文本时按照文本基线对齐,否则底部对齐。</li></ul>
Z
zengyawen 已提交
187 188
</td>
</tr>
Z
zengyawen 已提交
189
<tr><td class="cellrowborder" valign="top" width="21.18788121187881%" headers="mcps1.1.6.1.1 "><p>scrollbar-color<sup>6+</sup></p>
Z
zengyawen 已提交
190
</td>
Z
zengyawen 已提交
191
<td class="cellrowborder" valign="top" width="16.648335166483353%" headers="mcps1.1.6.1.2 "><p>&lt;color&gt;</p>
Z
zengyawen 已提交
192
</td>
Z
zengyawen 已提交
193
<td class="cellrowborder" valign="top" width="13.618638136186382%" headers="mcps1.1.6.1.3 "><p>-</p>
Z
zengyawen 已提交
194
</td>
Z
zengyawen 已提交
195
<td class="cellrowborder" valign="top" width="7.329267073292671%" headers="mcps1.1.6.1.4 "><p></p>
Z
zengyawen 已提交
196
</td>
Z
zengyawen 已提交
197
<td class="cellrowborder" valign="top" width="41.21587841215879%" headers="mcps1.1.6.1.5 "><p>设置滚动条的颜色。</p>
Z
zengyawen 已提交
198 199
</td>
</tr>
Z
zengyawen 已提交
200
<tr><td class="cellrowborder" valign="top" width="21.18788121187881%" headers="mcps1.1.6.1.1 "><p>scrollbar-width<sup>6+</sup></p>
Z
zengyawen 已提交
201
</td>
Z
zengyawen 已提交
202
<td class="cellrowborder" valign="top" width="16.648335166483353%" headers="mcps1.1.6.1.2 "><p>&lt;length&gt;</p>
Z
zengyawen 已提交
203
</td>
Z
zengyawen 已提交
204
<td class="cellrowborder" valign="top" width="13.618638136186382%" headers="mcps1.1.6.1.3 "><p>-</p>
Z
zengyawen 已提交
205
</td>
Z
zengyawen 已提交
206
<td class="cellrowborder" valign="top" width="7.329267073292671%" headers="mcps1.1.6.1.4 "><p></p>
Z
zengyawen 已提交
207
</td>
Z
zengyawen 已提交
208
<td class="cellrowborder" valign="top" width="41.21587841215879%" headers="mcps1.1.6.1.5 "><p>设置滚动条的宽度。</p>
Z
zengyawen 已提交
209 210
</td>
</tr>
Z
zengyawen 已提交
211
<tr><td class="cellrowborder" valign="top" width="21.18788121187881%" headers="mcps1.1.6.1.1 "><p>overscroll-effect<sup>6+</sup></p>
Z
zengyawen 已提交
212
</td>
Z
zengyawen 已提交
213
<td class="cellrowborder" valign="top" width="16.648335166483353%" headers="mcps1.1.6.1.2 "><p>string</p>
Z
zengyawen 已提交
214
</td>
Z
zengyawen 已提交
215
<td class="cellrowborder" valign="top" width="13.618638136186382%" headers="mcps1.1.6.1.3 "><p>-</p>
Z
zengyawen 已提交
216
</td>
Z
zengyawen 已提交
217
<td class="cellrowborder" valign="top" width="7.329267073292671%" headers="mcps1.1.6.1.4 "><p></p>
Z
zengyawen 已提交
218
</td>
Z
zengyawen 已提交
219 220
<td class="cellrowborder" valign="top" width="41.21587841215879%" headers="mcps1.1.6.1.5 "><p>设置滚动边缘效果,可选值为:</p>
<ul><li>spring:弹性物理动效,滑动到边缘后可以根据初始速度或通过触摸事件继续滑动一段距离,松手后回弹;</li><li>fade:渐隐物理动效,滑动到边缘后展示一个波浪形的渐隐,根据速度和滑动距离的变化渐隐也会发送一定的变化;</li><li>none:滑动到边缘后无效果</li></ul>
Z
zengyawen 已提交
221 222 223 224 225 226 227 228 229
</td>
</tr>
</tbody>
</table>

## 事件<a name="section77341431152917"></a>

除支持[通用事件](js-components-common-events.md)外,还支持如下事件:

Z
zengyawen 已提交
230
<table><thead align="left"><tr><th class="cellrowborder" valign="top" width="16.18%" id="mcps1.1.4.1.1"><p>名称</p>
Z
zengyawen 已提交
231
</th>
Z
zengyawen 已提交
232
<th class="cellrowborder" valign="top" width="21.89%" id="mcps1.1.4.1.2"><p>参数</p>
Z
zengyawen 已提交
233
</th>
Z
zengyawen 已提交
234
<th class="cellrowborder" valign="top" width="61.92999999999999%" id="mcps1.1.4.1.3"><p>描述</p>
Z
zengyawen 已提交
235 236 237
</th>
</tr>
</thead>
Z
zengyawen 已提交
238
<tbody><tr><td class="cellrowborder" valign="top" width="16.18%" headers="mcps1.1.4.1.1 "><p>reachstart<sup><span>6+</span></sup></p>
Z
zengyawen 已提交
239
</td>
Z
zengyawen 已提交
240
<td class="cellrowborder" valign="top" width="21.89%" headers="mcps1.1.4.1.2 "><p>-</p>
Z
zengyawen 已提交
241
</td>
Z
zengyawen 已提交
242
<td class="cellrowborder" valign="top" width="61.92999999999999%" headers="mcps1.1.4.1.3 "><p>当页面滑动到最开始的点时触发的事件回调,当flex-direction: row时才会触发。</p>
Z
zengyawen 已提交
243 244
</td>
</tr>
Z
zengyawen 已提交
245
<tr><td class="cellrowborder" valign="top" width="16.18%" headers="mcps1.1.4.1.1 "><p>reachend<sup>6+</sup></p>
Z
zengyawen 已提交
246
</td>
Z
zengyawen 已提交
247
<td class="cellrowborder" valign="top" width="21.89%" headers="mcps1.1.4.1.2 "><p>-</p>
Z
zengyawen 已提交
248
</td>
Z
zengyawen 已提交
249
<td class="cellrowborder" valign="top" width="61.92999999999999%" headers="mcps1.1.4.1.3 "><p>当页面滑动到最末尾的点时触发的事件回调,当flex-direction: row时才会触发。</p>
Z
zengyawen 已提交
250 251
</td>
</tr>
Z
zengyawen 已提交
252
<tr><td class="cellrowborder" valign="top" width="16.18%" headers="mcps1.1.4.1.1 "><p>reachtop<sup>6+</sup></p>
Z
zengyawen 已提交
253
</td>
Z
zengyawen 已提交
254
<td class="cellrowborder" valign="top" width="21.89%" headers="mcps1.1.4.1.2 "><p>-</p>
Z
zengyawen 已提交
255
</td>
Z
zengyawen 已提交
256
<td class="cellrowborder" valign="top" width="61.92999999999999%" headers="mcps1.1.4.1.3 "><p>当页面滑动到最上部的点时触发的事件回调,当flex-direction: column时才会触发。</p>
Z
zengyawen 已提交
257 258
</td>
</tr>
Z
zengyawen 已提交
259
<tr><td class="cellrowborder" valign="top" width="16.18%" headers="mcps1.1.4.1.1 "><p>reachbottom<sup>6+</sup></p>
Z
zengyawen 已提交
260
</td>
Z
zengyawen 已提交
261
<td class="cellrowborder" valign="top" width="21.89%" headers="mcps1.1.4.1.2 "><p>-</p>
Z
zengyawen 已提交
262
</td>
Z
zengyawen 已提交
263
<td class="cellrowborder" valign="top" width="61.92999999999999%" headers="mcps1.1.4.1.3 "><p>当页面滑动到最下部的点时触发的事件回调,当flex-direction: column时才会触发。</p>
Z
zengyawen 已提交
264 265 266 267 268 269 270 271 272
</td>
</tr>
</tbody>
</table>

## 方法<a name="section2279124532420"></a>

除支持[通用方法](js-components-common-methods.md)外,还支持如下方法:

Z
zengyawen 已提交
273
<table><thead align="left"><tr><th class="cellrowborder" valign="top" width="17.07%" id="mcps1.1.5.1.1"><p>名称</p>
Z
zengyawen 已提交
274
</th>
Z
zengyawen 已提交
275
<th class="cellrowborder" valign="top" width="11.84%" id="mcps1.1.5.1.2"><p>参数</p>
Z
zengyawen 已提交
276
</th>
Z
zengyawen 已提交
277
<th class="cellrowborder" valign="top" width="13.66%" id="mcps1.1.5.1.3"><p>返回值</p>
Z
zengyawen 已提交
278
</th>
Z
zengyawen 已提交
279
<th class="cellrowborder" valign="top" width="57.43000000000001%" id="mcps1.1.5.1.4"><p>描述</p>
Z
zengyawen 已提交
280 281 282
</th>
</tr>
</thead>
Z
zengyawen 已提交
283
<tbody><tr><td class="cellrowborder" valign="top" width="17.07%" headers="mcps1.1.5.1.1 "><p>getScrollOffset<sup><span>6+</span></sup></p>
Z
zengyawen 已提交
284
</td>
Z
zengyawen 已提交
285
<td class="cellrowborder" valign="top" width="11.84%" headers="mcps1.1.5.1.2 "><p>-</p>
Z
zengyawen 已提交
286
</td>
Z
zengyawen 已提交
287
<td class="cellrowborder" valign="top" width="13.66%" headers="mcps1.1.5.1.3 "><p><a href="#table154011838131719">ScrollOffset</a></p>
Z
zengyawen 已提交
288
</td>
Z
zengyawen 已提交
289
<td class="cellrowborder" valign="top" width="57.43000000000001%" headers="mcps1.1.5.1.4 "><p>获取元素内容的滚动偏移。</p>
Z
zhanghongchuan33 已提交
290
<div class="note"><span class="notetitle"> 说明: </span><div class="notebody"><ul><li>需要设置overflow样式为scroll,默认滚动方向与容器方向一致。</li></ul>
Z
zengyawen 已提交
291 292 293
</div></div>
</td>
</tr>
Z
zengyawen 已提交
294
<tr><td class="cellrowborder" valign="top" width="17.07%" headers="mcps1.1.5.1.1 "><p>scrollBy<sup><span>6+</span></sup></p>
Z
zengyawen 已提交
295
</td>
Z
zengyawen 已提交
296
<td class="cellrowborder" valign="top" width="11.84%" headers="mcps1.1.5.1.2 "><p><a href="#table1139175871819">ScrollParam</a></p>
Z
zengyawen 已提交
297
</td>
Z
zengyawen 已提交
298
<td class="cellrowborder" valign="top" width="13.66%" headers="mcps1.1.5.1.3 "><p>-</p>
Z
zengyawen 已提交
299
</td>
Z
zengyawen 已提交
300 301
<td class="cellrowborder" valign="top" width="57.43000000000001%" headers="mcps1.1.5.1.4 "><p>指定元素内容的滚动偏移。</p>
<div class="note"><span class="notetitle"> 说明: </span><div class="notebody"><ul><li>需要设置overflow样式为scroll。</li></ul>
Z
zengyawen 已提交
302 303 304 305 306 307 308 309 310
</div></div>
</td>
</tr>
</tbody>
</table>

**表 1**  ScrollOffset<sup>6+</sup>

<a name="table154011838131719"></a>
Z
zengyawen 已提交
311
<table><thead align="left"><tr><th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.1"><p>名称</p>
Z
zengyawen 已提交
312
</th>
Z
zengyawen 已提交
313
<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.2"><p>类型</p>
Z
zengyawen 已提交
314
</th>
Z
zengyawen 已提交
315
<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.3"><p>描述</p>
Z
zengyawen 已提交
316 317 318
</th>
</tr>
</thead>
Z
zengyawen 已提交
319
<tbody><tr><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p>x</p>
Z
zengyawen 已提交
320
</td>
Z
zengyawen 已提交
321
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p>number</p>
Z
zengyawen 已提交
322
</td>
Z
zengyawen 已提交
323
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p>在x轴方向的偏移,单位为px。</p>
Z
zengyawen 已提交
324 325
</td>
</tr>
Z
zengyawen 已提交
326
<tr><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p>y</p>
Z
zengyawen 已提交
327
</td>
Z
zengyawen 已提交
328
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p>number</p>
Z
zengyawen 已提交
329
</td>
Z
zengyawen 已提交
330
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p>在y轴方向的偏移,单位为px。</p>
Z
zengyawen 已提交
331 332 333 334 335 336 337 338
</td>
</tr>
</tbody>
</table>

**表 2**  ScrollParam<sup>6+</sup>

<a name="table1139175871819"></a>
Z
zengyawen 已提交
339
<table><thead align="left"><tr><th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.1"><p>名称</p>
Z
zengyawen 已提交
340
</th>
Z
zengyawen 已提交
341
<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.2"><p>类型</p>
Z
zengyawen 已提交
342
</th>
Z
zengyawen 已提交
343
<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.3"><p>描述</p>
Z
zengyawen 已提交
344 345 346
</th>
</tr>
</thead>
Z
zengyawen 已提交
347
<tbody><tr><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p>dx</p>
Z
zengyawen 已提交
348
</td>
Z
zengyawen 已提交
349
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p>number</p>
Z
zengyawen 已提交
350
</td>
Z
zengyawen 已提交
351
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p>水平方向滑动的偏移量,单位px。</p>
Z
zengyawen 已提交
352 353
</td>
</tr>
Z
zengyawen 已提交
354
<tr><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p>dy</p>
Z
zengyawen 已提交
355
</td>
Z
zengyawen 已提交
356
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p>number</p>
Z
zengyawen 已提交
357
</td>
Z
zengyawen 已提交
358
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p>垂直方向滑动的偏移量,单位px。</p>
Z
zengyawen 已提交
359 360
</td>
</tr>
Z
zengyawen 已提交
361
<tr><td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.1 "><p>smooth</p>
Z
zengyawen 已提交
362
</td>
Z
zengyawen 已提交
363
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.2 "><p>boolean</p>
Z
zengyawen 已提交
364
</td>
Z
zengyawen 已提交
365
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p>是否平滑处理。</p>
Z
zengyawen 已提交
366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569
</td>
</tr>
</tbody>
</table>

## 示例<a name="section1241545010391"></a>

1.  Flex样式

    ```
    <!-- xxx.hml -->
    <div class="container">
      <div class="flex-box">
        <div class="flex-item color-primary"></div>
        <div class="flex-item color-warning"></div>
        <div class="flex-item color-success"></div>
      </div>
    </div>
    ```

    ```
    /* xxx.css */
    .container {
      flex-direction: column;
      justify-content: center;
      align-items: center;
      width: 454px;
      height: 454px;
    }
    .flex-box {
      justify-content: space-around;
      align-items: center;
      width: 400px;
      height: 140px;
      background-color: #ffffff;
    }
    .flex-item {
      width: 120px;
      height: 120px;
      border-radius: 16px;
    }
    .color-primary {
      background-color: #007dff;
    }
    .color-warning {
      background-color: #ff7500;
    }
    .color-success {
      background-color: #41ba41;
    }
    ```

    ![](figures/zh-cn_image_0000001127285076.png)

2.  Flex Wrap样式

    ```
    <!-- xxx.hml -->
    <div class="container">
      <div class="flex-box">
        <div class="flex-item color-primary"></div>
        <div class="flex-item color-warning"></div>
        <div class="flex-item color-success"></div>
      </div>
    </div>
    ```

    ```
    /* xxx.css */
    .container {
      flex-direction: column;
      justify-content: center;
      align-items: center;
      width: 454px;
      height: 454px;
    }
    .flex-box {
      justify-content: space-around;
      align-items: center;
      flex-wrap: wrap;
      width: 300px;
      height: 250px;
      background-color: #ffffff;
    }
    .flex-item {
      width: 120px;
      height: 120px;
      border-radius: 16px;
    }
    .color-primary {
      background-color: #007dff;
    }
    .color-warning {
      background-color: #ff7500;
    }
    .color-success {
      background-color: #41ba41;
    }
    ```

    ![](figures/22.png)

3.  Grid样式

    ```
    <!-- xxx.hml -->
    <div class="common grid-parent">
      <div class="grid-child grid-left-top"></div>
      <div class="grid-child grid-left-bottom"></div>
      <div class="grid-child grid-right-top"></div>
      <div class="grid-child grid-right-bottom"></div>
    </div>
    ```

    ```
    /* xxx.css */
    .common {
      width: 400px;
      height: 400px;
      background-color: #ffffff;
      align-items: center;
      justify-content: center;
      margin: 24px;
    }
    .grid-parent {
      display: grid;
      grid-template-columns: 35% 35%;
      grid-columns-gap: 24px;
      grid-rows-gap: 24px;
      grid-template-rows: 35% 35%;
    }
    .grid-child {
      width: 100%;
      height: 100%;
      border-radius: 8px;
    }
    .grid-left-top {
      grid-row-start: 0;
      grid-column-start: 0;
      grid-row-end: 0;
      grid-column-end: 0;
      background-color: #3f56ea;
    }
    .grid-left-bottom {
      grid-row-start: 1;
      grid-column-start: 0;
      grid-row-end: 1;
      grid-column-end: 0;
      background-color: #00aaee;
    }
    .grid-right-top {
      grid-row-start: 0;
      grid-column-start: 1;
      grid-row-end: 0;
      grid-column-end: 1;
      background-color: #00bfc9;
    }
    .grid-right-bottom {
      grid-row-start: 1;
      grid-column-start: 1;
      grid-row-end: 1;
      grid-column-end: 1;
      background-color: #47cc47;
    }
    ```

    ![](figures/11.png)

4.  拖拽<sup>7+</sup>

    ```
    <!-- xxx.hml -->
    <div class="container">
      <div class="content" ondragstart="dragstart" ondrag="drag" ondragend="dragend" style="position: absolute;left: {{left}};top:{{top}};">
      </div>
    </div>
    ```

    ```
    /* xxx.css */
    .container {
      flex-direction: column;
    }
    .content{
      width: 200px;
      height: 200px;
      background-color: red;
    }
    ```

    ```
    // xxx.js
    import prompt from '@system.prompt';
    export default {
      data:{
        left:0,
        top:0,
      },
      dragstart(e){
        prompt.showToast({
          message: 'Start to be dragged'
        })
      },
      drag(e){
Z
zengyawen 已提交
570 571
        this.left = e.globalX;
        this.top = e.globalY;
Z
zengyawen 已提交
572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617
      },
      dragend(e){
        prompt.showToast({
          message: 'End Drag'
        })
       },
    }
    ```

    ![](figures/9.gif)

    ```
    <!-- xxx.hml -->
    <div class="container">
      <div class="content" ondrag="drag" style="position: absolute;left: {{left}};top: {{top}};"></div>
      <div style="width: 500px; height: 500px; background-color: yellow; position: fixed; left: 15%; top: 30%; opacity:0.3"
        ondragenter="dragenter" ondragover="dragover" ondragleave="dragleave" ondrop="drop">
      </div>
    </div>
    ```

    ```
    /* xxx.css */
    .container {
      flex-direction: column;
      width: 100%;
      position: relative;
      max-width: 100%;
    }
    .content{
      width: 200px;
      height: 200px;
      background-color: red;
      position: absolute;
    }
    ```

    ```
    // xxx.js
    import prompt from '@system.prompt';
    export default {
      data:{
        left:0,
        top:0,
      },
      drag(e){
Z
zengyawen 已提交
618 619
        this.left = e.globalX;
        this.top = e.globalY;
Z
zengyawen 已提交
620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702
      },
      dragenter(e){
        prompt.showToast({
          message: 'enter'
        })
      },
      dragover(e){
        prompt.showToast({
          message: 'over'
        })
      },
      dragleave(e){
        prompt.showToast({
          message: 'leave'
        })
      },
      drop(e){
        prompt.showToast({
          message: 'drop'
        })
      }
    }
    ```

    ![](figures/6.gif)

5.  手指捏合<sup>7+</sup>

    ```
    <!-- xxx.hml -->
    <div class="container">
      <div class="content "onpinchstart="pinchstart" onpinchend="pinchend" onpinchupdate="pinchupdate"
        onpinchcancel=" pinchcancel"> 
      </div>
    </div>
    ```

    ```
    /* xxx.css */
    .container {
      flex-direction: column;
      justify-content: center;
      align-items: center;
      width: 454px;
      height: 454px;}
    .content{
      width: 400px;
      height: 400px;
      background-color: aqua;
      margin:30px
    }
    ```

    ```
    // xxx.js
    import prompt from '@system.prompt';
    export default {
      pinchstart(e){
        prompt.showToast({
          message: 'pinchstart!!!'
        })
      },
      pinchupdate(e){
        prompt.showToast({
          message: 'Two-finger pinch update'
        })
      },
      pinchend(e){
        prompt.showToast({
          message: 'Finished with two fingers pinching'
        })
      },
      pinchcancel(e){
        prompt.showToast({
          message: 'Finger pinching is interrupted'
        })
      }
    }
    ```

    ![](figures/5.gif)