1e41f4b71Sopenharmony_ci# div
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci>  **说明:**
4e41f4b71Sopenharmony_ci>  从API version 4开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ci基础容器,用作页面结构的根节点或将内容进行分组。
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ci## 权限列表
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci## 子组件
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci支持。
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci## 属性
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci支持[通用属性](js-components-common-attributes.md)。
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci## 样式
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci除支持组件[通用样式](js-components-common-styles.md)外,还支持如下样式:
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci| 名称                           | 类型           | 默认值       | 必填 | 描述                                                         |
28e41f4b71Sopenharmony_ci| ------------------------------ | -------------- | ------------ | ---- | ------------------------------------------------------------ |
29e41f4b71Sopenharmony_ci| flex-direction                 | string         | row          | 否   | flex容器主轴方向。可选项有:<br/>-&nbsp;column:垂直方向从上到下。<br/>-&nbsp;row:水平方向从左到右。 |
30e41f4b71Sopenharmony_ci| flex-wrap                      | string         | nowrap       | 否   | flex容器是单行还是多行显示,该值暂不支持动态修改。可选项有:<br/>-&nbsp;nowrap:不换行,单行显示。<br/>-&nbsp;wrap:换行,多行显示。 |
31e41f4b71Sopenharmony_ci| justify-content                | string         | flex-start   | 否   | flex容器当前行的主轴对齐格式。可选项有:<br/>-&nbsp;flex-start:项目位于容器的开头。<br/>-&nbsp;flex-end:项目位于容器的结尾。<br/>-&nbsp;center:项目位于容器的中心。<br/>-&nbsp;space-between:项目位于各行之间留有空白的容器内。<br/>-&nbsp;space-around:项目位于各行之前、之间、之后都留有空白的容器内。<br/>-&nbsp;space-evenly<sup>5+</sup>:&nbsp;&nbsp;均匀排列每个元素,每个元素之间的间隔相等。 |
32e41f4b71Sopenharmony_ci| align-items                    | string         | stretch<br/> | 否   | flex容器当前行的交叉轴对齐格式,可选值为:<br/>-&nbsp;stretch:弹性元素在交叉轴方向被拉伸到与容器相同的高度或宽度。<br/>-&nbsp;flex-start:元素向交叉轴起点对齐。<br/>-&nbsp;flex-end:元素向交叉轴终点对齐。<br/>-&nbsp;center:元素在交叉轴居中。<br/>-&nbsp;baseline:如Flex布局纵向排列,则该值与’flex-start‘等效。横向布局时,内容元素存在文本时按照文本基线对齐,否则底部对齐。 |
33e41f4b71Sopenharmony_ci| align-content                  | string         | flex-start   | 否   | 交叉轴中有额外的空间时,多行内容对齐格式,可选值为:<br/>-&nbsp;flex-start:所有行从交叉轴起点开始填充。第一行的交叉轴起点边和容器的交叉轴起点边对齐。接下来的每一行紧跟前一行。<br/>-&nbsp;flex-end:所有行从交叉轴末尾开始填充。最后一行的交叉轴终点和容器的交叉轴终点对齐。同时所有后续行与前一个对齐。<br/>-&nbsp;center:所有行朝向容器的中心填充。每行互相紧挨,相对于容器居中对齐。容器的交叉轴起点边和第一行的距离相等于容器的交叉轴终点边和最后一行的距离。<br/>-&nbsp;space-between:所有行在容器中平均分布。相邻两行间距相等。容器的交叉轴起点边和终点边分别与第一行和最后一行的边对齐。<br/>-&nbsp;space-around:所有行在容器中平均分布,相邻两行间距相等。容器的交叉轴起点边和终点边分别与第一行和最后一行的距离是相邻两行间距的一半。 |
34e41f4b71Sopenharmony_ci| grid-template-[columns\|rows]  | string         | 1行1列       | 否   | 用于设置当前网格布局行和列的数量,不设置时默认1行1列,仅当display为grid时生效。<br/>示例:如设置grid-template-columns为:<br/>-&nbsp;50px&nbsp;100px&nbsp;60px:分三列,第一列50px,第二列100px,第三列60px;<br/>-&nbsp;1fr&nbsp;1fr&nbsp;2fr:分三列,将父组件允许的宽分为4等份,第一列占1份,第二列占一份,第三列占2份;<br/>-&nbsp;30%&nbsp;20%&nbsp;50%:分三列,将父组件允许的宽为基准,第一列占30%,第二列占20%,第三列占50%;<br/>-&nbsp;repeat(2,100px):分两列,第一列100px,第二列100px;<br/>-&nbsp;repeat(auto-fill,100px)<sup>5+</sup>:按照每列100px的大小和交叉轴大小计算最大正整数重复次数,按照该重复次数布满交叉轴;<br/>-&nbsp;auto&nbsp;1fr&nbsp;1fr:分三列,第一列自适应内部子组件所需宽度,剩余空间分为两等份,第二列占一份,第三列占一份。 |
35e41f4b71Sopenharmony_ci| grid-[columns\|rows]-gap       | &lt;length&gt; | 0            | 否   | 用于设置行与行的间距或者列与列的间距,也可以支持通过grid-gap设置相同的行列间距,仅当display为grid时生效。 |
36e41f4b71Sopenharmony_ci| grid-row-[start\|end]          | number         | -            | 否   | 用于设置当前元素在网格布局中的起止行号,仅当父组件display样式为grid时生效(仅div支持display样式设置为grid)。 |
37e41f4b71Sopenharmony_ci| grid-column-[start\|end]       | number         | -            | 否   | 用于设置当前元素在网格布局中的起止列号,仅当父组件display样式为grid时生效(仅div支持display样式设置为grid)。 |
38e41f4b71Sopenharmony_ci| grid-auto-flow<sup>5+</sup>    | string         | -            | 否   | 使用框架自动布局算法进行网格的布局,可选值为:<br/>-&nbsp;row:逐行填充元素,如果行空间不够,则新增行;<br/>-&nbsp;column:逐列填充元素,如果列空间不够,则新增列。 |
39e41f4b71Sopenharmony_ci| overflow<sup>6+</sup>          | string         | visible      | 否   | 设置元素内容区超过元素本身大小时的表现形式。<br/>-&nbsp;visible:多个子元素内容超过元素大小时,显示在元素外面;<br/>-&nbsp;hidden:元素内容超过元素大小时,进行裁切显示;<br/>-&nbsp;scroll:元素内容超过元素大小时,进行滚动显示并展示滚动条(当前只支持纵向)。<br/>overflow:&nbsp;scroll样式需要元素设置固定的大小,默认滚动方向与容器方向一致。 |
40e41f4b71Sopenharmony_ci| align-items<sup>6+</sup>       | string         | -            | 否   | 设置容器中元素交叉轴上的对齐方式:<br/>-&nbsp;stretch:Flex容器内容在交叉轴方向被拉伸到与容器相同的高度或宽度;<br/>-&nbsp;flex-start:Flex布局容器内元素向交叉轴起点对齐;<br/>-&nbsp;flex-end:Flex布局容器内元素向交叉轴终点对齐;<br/>-&nbsp;center:Flex布局容器内元素在交叉轴居中对齐;<br/>-&nbsp;baseline:如Flex布局纵向排列,则该值与'flex-start'等效。横向布局时,内容元素存在文本时按照文本基线对齐,否则底部对齐。 |
41e41f4b71Sopenharmony_ci| scrollbar-color<sup>6+</sup>   | &lt;color&gt;  | -            | 否   | 设置滚动条的颜色。                                           |
42e41f4b71Sopenharmony_ci| scrollbar-width<sup>6+</sup>   | &lt;length&gt; | -            | 否   | 设置滚动条的宽度。                                           |
43e41f4b71Sopenharmony_ci| overscroll-effect<sup>6+</sup> | string         | -            | 否   | 设置滚动边缘效果,可选值为:<br/>-&nbsp;spring:弹性物理动效,滑动到边缘后可以根据初始速度或通过触摸事件继续滑动一段距离,松手后回弹;<br/>-&nbsp;fade:渐隐物理动效,滑动到边缘后展示一个波浪形的渐隐,根据速度和滑动距离的变化渐隐也会发送一定的变化;<br/>-&nbsp;none:滑动到边缘后无效果 |
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci
46e41f4b71Sopenharmony_ci## 事件
47e41f4b71Sopenharmony_ci
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ci除支持[通用事件](js-components-common-events.md)外,还支持如下事件:
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci| 名称                       | 参数   | 描述                                       |
53e41f4b71Sopenharmony_ci| ------------------------ | ---- | ---------------------------------------- |
54e41f4b71Sopenharmony_ci| reachstart<sup>6+</sup>  | -    | 当页面滑动到最开始的点时触发的事件回调,当flex-direction:&nbsp;row时才会触发。 |
55e41f4b71Sopenharmony_ci| reachend<sup>6+</sup>    | -    | 当页面滑动到最末尾的点时触发的事件回调,当flex-direction:&nbsp;row时才会触发。 |
56e41f4b71Sopenharmony_ci| reachtop<sup>6+</sup>    | -    | 当页面滑动到最上部的点时触发的事件回调,当flex-direction:&nbsp;column时才会触发。 |
57e41f4b71Sopenharmony_ci| reachbottom<sup>6+</sup> | -    | 当页面滑动到最下部的点时触发的事件回调,当flex-direction:&nbsp;column时才会触发。 |
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci## 方法
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ci除支持[通用方法](js-components-common-methods.md)外,还支持如下方法:
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci| 名称                           | 参数          | 返回值          | 描述                                      |
64e41f4b71Sopenharmony_ci| ---------------------------- | ----------- | ------------ | --------------------------------------- |
65e41f4b71Sopenharmony_ci| getScrollOffset<sup>6+</sup> | -           | ScrollOffset | 获取元素内容的滚动偏移。<br/>需要设置overflow样式为scroll。 |
66e41f4b71Sopenharmony_ci| scrollBy<sup>6+</sup>        | ScrollParam | -            | 指定元素内容的滚动偏移。<br/>需要设置overflow样式为scroll。 |
67e41f4b71Sopenharmony_ci
68e41f4b71Sopenharmony_ci**表1** ScrollOffset<sup>6+</sup>
69e41f4b71Sopenharmony_ci
70e41f4b71Sopenharmony_ci| 名称   | 类型     | 描述              |
71e41f4b71Sopenharmony_ci| ---- | ------ | --------------- |
72e41f4b71Sopenharmony_ci| x    | number | 在x轴方向的偏移,单位为px。 |
73e41f4b71Sopenharmony_ci| y    | number | 在y轴方向的偏移,单位为px。 |
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ci**表2** ScrollParam<sup>6+</sup>
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ci| 名称     | 类型      | 描述               |
78e41f4b71Sopenharmony_ci| ------ | ------- | ---------------- |
79e41f4b71Sopenharmony_ci| dx     | number  | 水平方向滑动的偏移量,单位px。 |
80e41f4b71Sopenharmony_ci| dy     | number  | 垂直方向滑动的偏移量,单位px。 |
81e41f4b71Sopenharmony_ci| smooth | boolean | 是否平滑处理。          |
82e41f4b71Sopenharmony_ci
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_ci## 示例
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ci1. Flex样式
87e41f4b71Sopenharmony_ci   ```html
88e41f4b71Sopenharmony_ci   <!-- xxx.hml -->
89e41f4b71Sopenharmony_ci   <div class="container">
90e41f4b71Sopenharmony_ci     <div class="flex-box">
91e41f4b71Sopenharmony_ci       <div class="flex-item color-primary"></div>
92e41f4b71Sopenharmony_ci       <div class="flex-item color-warning"></div>
93e41f4b71Sopenharmony_ci       <div class="flex-item color-success"></div>
94e41f4b71Sopenharmony_ci     </div>
95e41f4b71Sopenharmony_ci   </div>
96e41f4b71Sopenharmony_ci   ```
97e41f4b71Sopenharmony_ci
98e41f4b71Sopenharmony_ci   ```css
99e41f4b71Sopenharmony_ci   /* xxx.css */
100e41f4b71Sopenharmony_ci   .container {
101e41f4b71Sopenharmony_ci     flex-direction: column;
102e41f4b71Sopenharmony_ci     justify-content: center;
103e41f4b71Sopenharmony_ci     align-items: center;
104e41f4b71Sopenharmony_ci     width: 454px;
105e41f4b71Sopenharmony_ci     height: 454px;
106e41f4b71Sopenharmony_ci   }
107e41f4b71Sopenharmony_ci   .flex-box {
108e41f4b71Sopenharmony_ci     justify-content: space-around;
109e41f4b71Sopenharmony_ci     align-items: center;
110e41f4b71Sopenharmony_ci     width: 400px;
111e41f4b71Sopenharmony_ci     height: 140px;
112e41f4b71Sopenharmony_ci     background-color: #ffffff;
113e41f4b71Sopenharmony_ci   }
114e41f4b71Sopenharmony_ci   .flex-item {
115e41f4b71Sopenharmony_ci     width: 120px;
116e41f4b71Sopenharmony_ci     height: 120px;
117e41f4b71Sopenharmony_ci     border-radius: 16px;
118e41f4b71Sopenharmony_ci   }
119e41f4b71Sopenharmony_ci   .color-primary {
120e41f4b71Sopenharmony_ci     background-color: #007dff;
121e41f4b71Sopenharmony_ci   }
122e41f4b71Sopenharmony_ci   .color-warning {
123e41f4b71Sopenharmony_ci     background-color: #ff7500;
124e41f4b71Sopenharmony_ci   }
125e41f4b71Sopenharmony_ci   .color-success {
126e41f4b71Sopenharmony_ci     background-color: #41ba41;
127e41f4b71Sopenharmony_ci   }
128e41f4b71Sopenharmony_ci   ```
129e41f4b71Sopenharmony_ci
130e41f4b71Sopenharmony_ci   ![zh-cn_image_0000001127285076](figures/zh-cn_image_0000001127285076.png)
131e41f4b71Sopenharmony_ci
132e41f4b71Sopenharmony_ci2. Flex Wrap样式
133e41f4b71Sopenharmony_ci   ```html
134e41f4b71Sopenharmony_ci   <!-- xxx.hml -->
135e41f4b71Sopenharmony_ci   <div class="container">
136e41f4b71Sopenharmony_ci     <div class="flex-box">
137e41f4b71Sopenharmony_ci       <div class="flex-item color-primary"></div>
138e41f4b71Sopenharmony_ci       <div class="flex-item color-warning"></div>
139e41f4b71Sopenharmony_ci       <div class="flex-item color-success"></div>
140e41f4b71Sopenharmony_ci     </div>
141e41f4b71Sopenharmony_ci   </div>
142e41f4b71Sopenharmony_ci   ```
143e41f4b71Sopenharmony_ci
144e41f4b71Sopenharmony_ci   ```css
145e41f4b71Sopenharmony_ci   /* xxx.css */
146e41f4b71Sopenharmony_ci   .container {
147e41f4b71Sopenharmony_ci     flex-direction: column;
148e41f4b71Sopenharmony_ci     justify-content: center;
149e41f4b71Sopenharmony_ci     align-items: center;
150e41f4b71Sopenharmony_ci     width: 454px;
151e41f4b71Sopenharmony_ci     height: 454px;
152e41f4b71Sopenharmony_ci   }
153e41f4b71Sopenharmony_ci   .flex-box {
154e41f4b71Sopenharmony_ci     justify-content: space-around;
155e41f4b71Sopenharmony_ci     align-items: center;
156e41f4b71Sopenharmony_ci     flex-wrap: wrap;
157e41f4b71Sopenharmony_ci     width: 300px;
158e41f4b71Sopenharmony_ci     height: 250px;
159e41f4b71Sopenharmony_ci     background-color: #ffffff;
160e41f4b71Sopenharmony_ci   }
161e41f4b71Sopenharmony_ci   .flex-item {
162e41f4b71Sopenharmony_ci     width: 120px;
163e41f4b71Sopenharmony_ci     height: 120px;
164e41f4b71Sopenharmony_ci     border-radius: 16px;
165e41f4b71Sopenharmony_ci   }
166e41f4b71Sopenharmony_ci   .color-primary {
167e41f4b71Sopenharmony_ci     background-color: #007dff;
168e41f4b71Sopenharmony_ci   }
169e41f4b71Sopenharmony_ci   .color-warning {
170e41f4b71Sopenharmony_ci     background-color: #ff7500;
171e41f4b71Sopenharmony_ci   }
172e41f4b71Sopenharmony_ci   .color-success {
173e41f4b71Sopenharmony_ci     background-color: #41ba41;
174e41f4b71Sopenharmony_ci   }
175e41f4b71Sopenharmony_ci   ```
176e41f4b71Sopenharmony_ci
177e41f4b71Sopenharmony_ci   ![zh-cn_image_0000001213396721](figures/zh-cn_image_0000001213396721.png)
178e41f4b71Sopenharmony_ci
179e41f4b71Sopenharmony_ci3. Grid样式
180e41f4b71Sopenharmony_ci
181e41f4b71Sopenharmony_ci   ```html
182e41f4b71Sopenharmony_ci   <!-- xxx.hml -->
183e41f4b71Sopenharmony_ci   <div class="common grid-parent">
184e41f4b71Sopenharmony_ci     <div class="grid-child grid-left-top"></div>
185e41f4b71Sopenharmony_ci     <div class="grid-child grid-left-bottom"></div>
186e41f4b71Sopenharmony_ci     <div class="grid-child grid-right-top"></div>
187e41f4b71Sopenharmony_ci     <div class="grid-child grid-right-bottom"></div>
188e41f4b71Sopenharmony_ci   </div>
189e41f4b71Sopenharmony_ci   ```
190e41f4b71Sopenharmony_ci
191e41f4b71Sopenharmony_ci   ```css
192e41f4b71Sopenharmony_ci   /* xxx.css */
193e41f4b71Sopenharmony_ci   .common {
194e41f4b71Sopenharmony_ci     width: 400px;
195e41f4b71Sopenharmony_ci     height: 400px;
196e41f4b71Sopenharmony_ci     background-color: #ffffff;
197e41f4b71Sopenharmony_ci     align-items: center;
198e41f4b71Sopenharmony_ci     justify-content: center;
199e41f4b71Sopenharmony_ci     margin: 24px;
200e41f4b71Sopenharmony_ci   }
201e41f4b71Sopenharmony_ci   .grid-parent {
202e41f4b71Sopenharmony_ci     display: grid;
203e41f4b71Sopenharmony_ci     grid-template-columns: 35% 35%;
204e41f4b71Sopenharmony_ci     grid-columns-gap: 24px;
205e41f4b71Sopenharmony_ci     grid-rows-gap: 24px;
206e41f4b71Sopenharmony_ci     grid-template-rows: 35% 35%;
207e41f4b71Sopenharmony_ci   }
208e41f4b71Sopenharmony_ci   .grid-child {
209e41f4b71Sopenharmony_ci     width: 100%;
210e41f4b71Sopenharmony_ci     height: 100%;
211e41f4b71Sopenharmony_ci     border-radius: 8px;
212e41f4b71Sopenharmony_ci   }
213e41f4b71Sopenharmony_ci   .grid-left-top {
214e41f4b71Sopenharmony_ci     grid-row-start: 0;
215e41f4b71Sopenharmony_ci     grid-column-start: 0;
216e41f4b71Sopenharmony_ci     grid-row-end: 0;
217e41f4b71Sopenharmony_ci     grid-column-end: 0;
218e41f4b71Sopenharmony_ci     background-color: #3f56ea;
219e41f4b71Sopenharmony_ci   }
220e41f4b71Sopenharmony_ci   .grid-left-bottom {
221e41f4b71Sopenharmony_ci     grid-row-start: 1;
222e41f4b71Sopenharmony_ci     grid-column-start: 0;
223e41f4b71Sopenharmony_ci     grid-row-end: 1;
224e41f4b71Sopenharmony_ci     grid-column-end: 0;
225e41f4b71Sopenharmony_ci     background-color: #00aaee;
226e41f4b71Sopenharmony_ci   }
227e41f4b71Sopenharmony_ci   .grid-right-top {
228e41f4b71Sopenharmony_ci     grid-row-start: 0;
229e41f4b71Sopenharmony_ci     grid-column-start: 1;
230e41f4b71Sopenharmony_ci     grid-row-end: 0;
231e41f4b71Sopenharmony_ci     grid-column-end: 1;
232e41f4b71Sopenharmony_ci     background-color: #00bfc9;
233e41f4b71Sopenharmony_ci   }
234e41f4b71Sopenharmony_ci   .grid-right-bottom {
235e41f4b71Sopenharmony_ci     grid-row-start: 1;
236e41f4b71Sopenharmony_ci     grid-column-start: 1;
237e41f4b71Sopenharmony_ci     grid-row-end: 1;
238e41f4b71Sopenharmony_ci     grid-column-end: 1;
239e41f4b71Sopenharmony_ci     background-color: #47cc47;
240e41f4b71Sopenharmony_ci   }
241e41f4b71Sopenharmony_ci   ```
242e41f4b71Sopenharmony_ci
243e41f4b71Sopenharmony_ci   ![zh-cn_image_0000001213276619](figures/zh-cn_image_0000001213276619.png)
244e41f4b71Sopenharmony_ci
245e41f4b71Sopenharmony_ci4. 拖拽<sup>7+</sup>
246e41f4b71Sopenharmony_ci   ```html
247e41f4b71Sopenharmony_ci   <!-- xxx.hml -->
248e41f4b71Sopenharmony_ci   <div class="container">
249e41f4b71Sopenharmony_ci     <div class="content" ondragstart="dragstart" ondrag="drag" ondragend="dragend" style="position: absolute;left: {{left}};top: {{top}};">
250e41f4b71Sopenharmony_ci     </div>
251e41f4b71Sopenharmony_ci   </div>
252e41f4b71Sopenharmony_ci   ```
253e41f4b71Sopenharmony_ci
254e41f4b71Sopenharmony_ci   ```css
255e41f4b71Sopenharmony_ci    /* xxx.css */
256e41f4b71Sopenharmony_ci    .container {
257e41f4b71Sopenharmony_ci    flex-direction: column;
258e41f4b71Sopenharmony_ci    width: 100%;
259e41f4b71Sopenharmony_ci    height: 100%;
260e41f4b71Sopenharmony_ci    }
261e41f4b71Sopenharmony_ci    .content {
262e41f4b71Sopenharmony_ci    width: 200px;
263e41f4b71Sopenharmony_ci    height: 200px;
264e41f4b71Sopenharmony_ci    background-color: red;
265e41f4b71Sopenharmony_ci    }
266e41f4b71Sopenharmony_ci   ```
267e41f4b71Sopenharmony_ci
268e41f4b71Sopenharmony_ci   ```js
269e41f4b71Sopenharmony_ci   // xxx.js
270e41f4b71Sopenharmony_ci   import promptAction from '@ohos.promptAction';
271e41f4b71Sopenharmony_ci   export default {
272e41f4b71Sopenharmony_ci     data:{
273e41f4b71Sopenharmony_ci       left:0,
274e41f4b71Sopenharmony_ci       top:0,
275e41f4b71Sopenharmony_ci     },
276e41f4b71Sopenharmony_ci     dragstart(e){
277e41f4b71Sopenharmony_ci       prompt.showToast({
278e41f4b71Sopenharmony_ci         message: 'Start to be dragged'
279e41f4b71Sopenharmony_ci       })
280e41f4b71Sopenharmony_ci     },
281e41f4b71Sopenharmony_ci     drag(e){
282e41f4b71Sopenharmony_ci       this.left = e.globalX;
283e41f4b71Sopenharmony_ci       this.top = e.globalY;
284e41f4b71Sopenharmony_ci     },
285e41f4b71Sopenharmony_ci     dragend(e){
286e41f4b71Sopenharmony_ci       promptAction.showToast({
287e41f4b71Sopenharmony_ci         message: 'End Drag'
288e41f4b71Sopenharmony_ci       })
289e41f4b71Sopenharmony_ci     }
290e41f4b71Sopenharmony_ci   }
291e41f4b71Sopenharmony_ci   ```
292e41f4b71Sopenharmony_ci
293e41f4b71Sopenharmony_ci   ![zh-cn_image_0000001213284927](figures/zh-cn_image_0000001213284927.gif)
294e41f4b71Sopenharmony_ci
295e41f4b71Sopenharmony_ci   ```html
296e41f4b71Sopenharmony_ci   <!-- xxx.hml -->
297e41f4b71Sopenharmony_ci   <div class="container">
298e41f4b71Sopenharmony_ci     <div class="content" ondrag="drag" style="position: absolute;left: {{left}};top: {{top}};"></div>
299e41f4b71Sopenharmony_ci     <div style="width: 500px; height: 500px; background-color: yellow; position: fixed; left: 15%; top: 30%; opacity:0.3"
300e41f4b71Sopenharmony_ci       ondragenter="dragenter" ondragover="dragover" ondragleave="dragleave" ondrop="drop">
301e41f4b71Sopenharmony_ci     </div>
302e41f4b71Sopenharmony_ci   </div>
303e41f4b71Sopenharmony_ci   ```
304e41f4b71Sopenharmony_ci
305e41f4b71Sopenharmony_ci   ```css
306e41f4b71Sopenharmony_ci   /* xxx.css */
307e41f4b71Sopenharmony_ci   .container {
308e41f4b71Sopenharmony_ci     flex-direction: column;
309e41f4b71Sopenharmony_ci     width: 100%;
310e41f4b71Sopenharmony_ci     position: relative;
311e41f4b71Sopenharmony_ci     max-width: 100%;
312e41f4b71Sopenharmony_ci   }
313e41f4b71Sopenharmony_ci   .content{
314e41f4b71Sopenharmony_ci     width: 200px;
315e41f4b71Sopenharmony_ci     height: 200px;
316e41f4b71Sopenharmony_ci     background-color: red;
317e41f4b71Sopenharmony_ci     position: absolute;
318e41f4b71Sopenharmony_ci   }
319e41f4b71Sopenharmony_ci   ```
320e41f4b71Sopenharmony_ci
321e41f4b71Sopenharmony_ci   ```js
322e41f4b71Sopenharmony_ci   // xxx.js
323e41f4b71Sopenharmony_ci   import promptAction from '@ohos.promptAction';
324e41f4b71Sopenharmony_ci   export default {
325e41f4b71Sopenharmony_ci     data:{
326e41f4b71Sopenharmony_ci       left:0,
327e41f4b71Sopenharmony_ci       top:0,
328e41f4b71Sopenharmony_ci     },
329e41f4b71Sopenharmony_ci     drag(e){
330e41f4b71Sopenharmony_ci       this.left = e.globalX;
331e41f4b71Sopenharmony_ci       this.top = e.globalY;
332e41f4b71Sopenharmony_ci     },
333e41f4b71Sopenharmony_ci     dragenter(e){
334e41f4b71Sopenharmony_ci       promptAction.showToast({
335e41f4b71Sopenharmony_ci         message: 'enter'
336e41f4b71Sopenharmony_ci       })
337e41f4b71Sopenharmony_ci     },
338e41f4b71Sopenharmony_ci     dragover(e){
339e41f4b71Sopenharmony_ci       promptAction.showToast({
340e41f4b71Sopenharmony_ci         message: 'over'
341e41f4b71Sopenharmony_ci       })
342e41f4b71Sopenharmony_ci     },
343e41f4b71Sopenharmony_ci     dragleave(e){
344e41f4b71Sopenharmony_ci       promptAction.showToast({
345e41f4b71Sopenharmony_ci         message: 'leave'
346e41f4b71Sopenharmony_ci       })
347e41f4b71Sopenharmony_ci     },
348e41f4b71Sopenharmony_ci     drop(e){
349e41f4b71Sopenharmony_ci       promptAction.showToast({
350e41f4b71Sopenharmony_ci         message: 'drop'
351e41f4b71Sopenharmony_ci       })
352e41f4b71Sopenharmony_ci     }
353e41f4b71Sopenharmony_ci   }
354e41f4b71Sopenharmony_ci   ```
355e41f4b71Sopenharmony_ci
356e41f4b71Sopenharmony_ci   ![zh-cn_image_0000001168005276](figures/zh-cn_image_0000001168005276.gif)
357e41f4b71Sopenharmony_ci
358e41f4b71Sopenharmony_ci5. 手指捏合<sup>7+</sup>
359e41f4b71Sopenharmony_ci   ```html
360e41f4b71Sopenharmony_ci   <!-- xxx.hml -->
361e41f4b71Sopenharmony_ci   <div class="container">
362e41f4b71Sopenharmony_ci     <div class="content" onpinchstart="pinchstart" onpinchend="pinchend" onpinchupdate="pinchupdate"
363e41f4b71Sopenharmony_ci       onpinchcancel="pinchcancel"> 
364e41f4b71Sopenharmony_ci     </div>
365e41f4b71Sopenharmony_ci   </div>
366e41f4b71Sopenharmony_ci   ```
367e41f4b71Sopenharmony_ci
368e41f4b71Sopenharmony_ci   ```css
369e41f4b71Sopenharmony_ci   /* xxx.css */
370e41f4b71Sopenharmony_ci   .container {
371e41f4b71Sopenharmony_ci     flex-direction: column;
372e41f4b71Sopenharmony_ci     justify-content: center;
373e41f4b71Sopenharmony_ci     align-items: center;
374e41f4b71Sopenharmony_ci     width: 454px;
375e41f4b71Sopenharmony_ci     height: 454px;
376e41f4b71Sopenharmony_ci   }
377e41f4b71Sopenharmony_ci   .content {
378e41f4b71Sopenharmony_ci     width: 400px;
379e41f4b71Sopenharmony_ci     height: 400px;
380e41f4b71Sopenharmony_ci     background-color: aqua;
381e41f4b71Sopenharmony_ci     margin: 30px;
382e41f4b71Sopenharmony_ci   }
383e41f4b71Sopenharmony_ci   ```
384e41f4b71Sopenharmony_ci
385e41f4b71Sopenharmony_ci   ```js
386e41f4b71Sopenharmony_ci   // xxx.js
387e41f4b71Sopenharmony_ci   import promptAction from '@ohos.promptAction';
388e41f4b71Sopenharmony_ci   export default {
389e41f4b71Sopenharmony_ci     pinchstart(e){
390e41f4b71Sopenharmony_ci       promptAction.showToast({
391e41f4b71Sopenharmony_ci         message: 'pinchstart!!!'
392e41f4b71Sopenharmony_ci       })
393e41f4b71Sopenharmony_ci     },
394e41f4b71Sopenharmony_ci     pinchupdate(e){
395e41f4b71Sopenharmony_ci       promptAction.showToast({
396e41f4b71Sopenharmony_ci         message: 'Two-finger pinch update'
397e41f4b71Sopenharmony_ci       })
398e41f4b71Sopenharmony_ci     },
399e41f4b71Sopenharmony_ci     pinchend(e){
400e41f4b71Sopenharmony_ci       promptAction.showToast({
401e41f4b71Sopenharmony_ci         message: 'Finished with two fingers pinching'
402e41f4b71Sopenharmony_ci       })
403e41f4b71Sopenharmony_ci     },
404e41f4b71Sopenharmony_ci     pinchcancel(e){
405e41f4b71Sopenharmony_ci       promptAction.showToast({
406e41f4b71Sopenharmony_ci         message: 'Finger pinching is interrupted'
407e41f4b71Sopenharmony_ci       })
408e41f4b71Sopenharmony_ci     }
409e41f4b71Sopenharmony_ci   }
410e41f4b71Sopenharmony_ci   ```
411e41f4b71Sopenharmony_ci
412e41f4b71Sopenharmony_ci   ![zh-cn_image_0000001168440692](figures/zh-cn_image_0000001168440692.gif)
413