1# 点击回弹效果
2
3设置组件点击时回弹效果。
4
5>  **说明:**
6>
7> 从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8
9## clickEffect
10
11clickEffect(value: ClickEffect | null)
12
13设置当前组件点击回弹效果。
14
15**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
16
17**系统能力:** SystemCapability.ArkUI.ArkUI.Full
18
19**参数:**
20
21| 参数名 | 类型                                                  | 必填 | 说明                                                         |
22| ------ | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
23| value  | [ClickEffect](#clickeffect对象说明)&nbsp;\|&nbsp;null | 是   | 设置当前组件点击回弹效果。<br/>**说明:**<br/>可通过undefined或者null取消点击回弹效果。<br/>不建议在组件大小动态变化的场景中使用该功能。<br/>当组件无法触发通用事件时,不支持该属性。 |
24
25## ClickEffect对象说明
26
27**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
28
29| 名称  | 参数类型                                                    | 必填 | 描述                                                         |
30| ----- | ----------------------------------------------------------- | ---- | ------------------------------------------------------------ |
31| level | [ClickEffectLevel](ts-appendix-enums.md#clickeffectlevel10) | 是   | 设置当前组件点击回弹效果。<br/>**说明:**<br/>level等于undefined或者null时, ClickEffect采用ClickEffectLevel.LIGHT对应的回弹效果, 缩放比参照scale说明。 |
32| scale | number                                                      | 否   | 回弹缩放比例,支持在设置ClickEffectLevel的基础上微调回弹缩放比例。<br/>**说明:**<br/>level等于ClickEffectLevel.LIGHT时,默认值:0.90<br/>level等于ClickEffectLevel.MIDDLE或者ClickEffectLevel.HEAVY时,默认值:0.95<br/>level等于undefined或者null时,level为ClickEffectLevel.LIGHT,默认值:0.90<br/>scale等于undefined或者null时,scale与当前设置的level对应的默认缩放比相同。<br/> |
33
34## 示例
35
36该示例主要演示不同组件的点击回弹效果。
37
38```ts
39// xxx.ets
40@Entry
41@Component
42struct ToggleExample {
43  build() {
44    Column({ space: 10 }) {
45      Text('type: Switch').fontSize(12).fontColor(0xcccccc).width('90%')
46      Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
47        Toggle({ type: ToggleType.Switch, isOn: false })
48          .clickEffect({level:ClickEffectLevel.LIGHT})
49          .selectedColor('#007DFF')
50          .switchPointColor('#FFFFFF')
51          .onChange((isOn: boolean) => {
52            console.info('Component status:' + isOn)
53          })
54
55        Toggle({ type: ToggleType.Switch, isOn: true })
56          .clickEffect({level:ClickEffectLevel.LIGHT, scale: 0.5})
57          .selectedColor('#007DFF')
58          .switchPointColor('#FFFFFF')
59          .onChange((isOn: boolean) => {
60            console.info('Component status:' + isOn)
61          })
62      }
63
64      Text('type: Checkbox').fontSize(12).fontColor(0xcccccc).width('90%')
65      Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
66        Toggle({ type: ToggleType.Checkbox, isOn: false })
67          .clickEffect({level:ClickEffectLevel.MIDDLE})
68          .size({ width: 20, height: 20 })
69          .selectedColor('#007DFF')
70          .onChange((isOn: boolean) => {
71            console.info('Component status:' + isOn)
72          })
73
74        Toggle({ type: ToggleType.Checkbox, isOn: true })
75          .clickEffect({level:ClickEffectLevel.MIDDLE, scale: 0.5})
76          .size({ width: 20, height: 20 })
77          .selectedColor('#007DFF')
78          .onChange((isOn: boolean) => {
79            console.info('Component status:' + isOn)
80          })
81      }
82
83      Text('type: Button').fontSize(12).fontColor(0xcccccc).width('90%')
84      Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
85        Toggle({ type: ToggleType.Button, isOn: false }) {
86          Text('status button').fontColor('#182431').fontSize(12)
87        }.width(106)
88        .clickEffect({level:ClickEffectLevel.HEAVY})
89        .selectedColor('rgba(0,125,255,0.20)')
90        .onChange((isOn: boolean) => {
91          console.info('Component status:' + isOn)
92        })
93
94        Toggle({ type: ToggleType.Button, isOn: true }) {
95          Text('status button').fontColor('#182431').fontSize(12)
96        }.width(106)
97        .clickEffect({level:ClickEffectLevel.HEAVY, scale: 0.5})
98        .selectedColor('rgba(0,125,255,0.20)')
99        .onChange((isOn: boolean) => {
100          console.info('Component status:' + isOn)
101        })
102      }
103    }.width('100%').padding(24)
104  }
105}
106```
107
108![clickeffect](figures/clickeffect.gif)