1e41f4b71Sopenharmony_ci# Click Effect
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciYou can set the click effect for a component to define how it behaves when clicked.
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci>  **NOTE**
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci> The APIs of this module are supported since API version 10. Updates will be marked with a superscript to indicate their earliest API version.
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci## clickEffect
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ciclickEffect(value: ClickEffect | null)
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ciClick effect of the component.
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci**System capability**: SystemCapability.ArkUI.ArkUI.Full
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci**Parameters**
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci| Name| Type                                                 | Mandatory| Description                                                        |
20e41f4b71Sopenharmony_ci| ------ | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
21e41f4b71Sopenharmony_ci| value  | [ClickEffect](#clickeffect) \| null | Yes  | Click effect of the component.<br>**NOTE**<br>You can remove the click effect by setting this attribute to **undefined** or **null**.<br>Avoid using this attribute in scenarios where the component size dynamically changes.<br>This attribute is not supported when the component cannot trigger a universal event.|
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci## ClickEffect
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci| Name | Type                                                   | Mandatory| Description                                                        |
26e41f4b71Sopenharmony_ci| ----- | ----------------------------------------------------------- | ---- | ------------------------------------------------------------ |
27e41f4b71Sopenharmony_ci| level | [ClickEffectLevel](ts-appendix-enums.md#clickeffectlevel10) | Yes  | Click effect of the component.<br>**NOTE**<br>If **level** is set to **undefined** or **null**, the click effect corresponding to **ClickEffectLevel.LIGHT** will be used. For details about the zoom ratio, see the description of **scale**.|
28e41f4b71Sopenharmony_ci| scale | number                                                      | No  | Zoom ratio. This parameter works based on the setting of **ClickEffectLevel**.<br>**NOTE**<br>The default value of this parameter varies by the value of **level**.<br>If **level** is set to **ClickEffectLevel.LIGHT**, the default value is **0.90**.<br>If **level** is set to **ClickEffectLevel.MIDDLE** or **ClickEffectLevel.HEAVY**, the default value is **0.95**.<br>If **level** is set to **undefined** or **null** (both of which evaluate to **ClickEffectLevel.LIGHT**), the default value is **0.90**.<br>If **scale** is set to **undefined** or **null**, the default zoom ratio for the set level will be used.<br>|
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci## Example
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ci```ts
33e41f4b71Sopenharmony_ci// xxx.ets
34e41f4b71Sopenharmony_ci@Entry
35e41f4b71Sopenharmony_ci@Component
36e41f4b71Sopenharmony_cistruct ToggleExample {
37e41f4b71Sopenharmony_ci  build() {
38e41f4b71Sopenharmony_ci    Column({ space: 10 }) {
39e41f4b71Sopenharmony_ci      Text('type: Switch').fontSize(12).fontColor(0xcccccc).width('90%')
40e41f4b71Sopenharmony_ci      Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
41e41f4b71Sopenharmony_ci        Toggle({ type: ToggleType.Switch, isOn: false })
42e41f4b71Sopenharmony_ci          .clickEffect({level:ClickEffectLevel.LIGHT})
43e41f4b71Sopenharmony_ci          .selectedColor('#007DFF')
44e41f4b71Sopenharmony_ci          .switchPointColor('#FFFFFF')
45e41f4b71Sopenharmony_ci          .onChange((isOn: boolean) => {
46e41f4b71Sopenharmony_ci            console.info('Component status:' + isOn)
47e41f4b71Sopenharmony_ci          })
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci        Toggle({ type: ToggleType.Switch, isOn: true })
50e41f4b71Sopenharmony_ci          .clickEffect({level:ClickEffectLevel.LIGHT, scale: 0.5})
51e41f4b71Sopenharmony_ci          .selectedColor('#007DFF')
52e41f4b71Sopenharmony_ci          .switchPointColor('#FFFFFF')
53e41f4b71Sopenharmony_ci          .onChange((isOn: boolean) => {
54e41f4b71Sopenharmony_ci            console.info('Component status:' + isOn)
55e41f4b71Sopenharmony_ci          })
56e41f4b71Sopenharmony_ci      }
57e41f4b71Sopenharmony_ci
58e41f4b71Sopenharmony_ci      Text('type: Checkbox').fontSize(12).fontColor(0xcccccc).width('90%')
59e41f4b71Sopenharmony_ci      Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
60e41f4b71Sopenharmony_ci        Toggle({ type: ToggleType.Checkbox, isOn: false })
61e41f4b71Sopenharmony_ci          .clickEffect({level:ClickEffectLevel.MIDDLE})
62e41f4b71Sopenharmony_ci          .size({ width: 20, height: 20 })
63e41f4b71Sopenharmony_ci          .selectedColor('#007DFF')
64e41f4b71Sopenharmony_ci          .onChange((isOn: boolean) => {
65e41f4b71Sopenharmony_ci            console.info('Component status:' + isOn)
66e41f4b71Sopenharmony_ci          })
67e41f4b71Sopenharmony_ci
68e41f4b71Sopenharmony_ci        Toggle({ type: ToggleType.Checkbox, isOn: true })
69e41f4b71Sopenharmony_ci          .clickEffect({level:ClickEffectLevel.MIDDLE, scale: 0.5})
70e41f4b71Sopenharmony_ci          .size({ width: 20, height: 20 })
71e41f4b71Sopenharmony_ci          .selectedColor('#007DFF')
72e41f4b71Sopenharmony_ci          .onChange((isOn: boolean) => {
73e41f4b71Sopenharmony_ci            console.info('Component status:' + isOn)
74e41f4b71Sopenharmony_ci          })
75e41f4b71Sopenharmony_ci      }
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ci      Text('type: Button').fontSize(12).fontColor(0xcccccc).width('90%')
78e41f4b71Sopenharmony_ci      Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
79e41f4b71Sopenharmony_ci        Toggle({ type: ToggleType.Button, isOn: false }) {
80e41f4b71Sopenharmony_ci          Text('status button').fontColor('#182431').fontSize(12)
81e41f4b71Sopenharmony_ci        }.width(106)
82e41f4b71Sopenharmony_ci        .clickEffect({level:ClickEffectLevel.HEAVY})
83e41f4b71Sopenharmony_ci        .selectedColor('rgba(0,125,255,0.20)')
84e41f4b71Sopenharmony_ci        .onChange((isOn: boolean) => {
85e41f4b71Sopenharmony_ci          console.info('Component status:' + isOn)
86e41f4b71Sopenharmony_ci        })
87e41f4b71Sopenharmony_ci
88e41f4b71Sopenharmony_ci        Toggle({ type: ToggleType.Button, isOn: true }) {
89e41f4b71Sopenharmony_ci          Text('status button').fontColor('#182431').fontSize(12)
90e41f4b71Sopenharmony_ci        }.width(106)
91e41f4b71Sopenharmony_ci        .clickEffect({level:ClickEffectLevel.HEAVY, scale: 0.5})
92e41f4b71Sopenharmony_ci        .selectedColor('rgba(0,125,255,0.20)')
93e41f4b71Sopenharmony_ci        .onChange((isOn: boolean) => {
94e41f4b71Sopenharmony_ci          console.info('Component status:' + isOn)
95e41f4b71Sopenharmony_ci        })
96e41f4b71Sopenharmony_ci      }
97e41f4b71Sopenharmony_ci    }.width('100%').padding(24)
98e41f4b71Sopenharmony_ci  }
99e41f4b71Sopenharmony_ci}
100e41f4b71Sopenharmony_ci```
101e41f4b71Sopenharmony_ci
102e41f4b71Sopenharmony_ci![clickeffect](figures/clickeffect.gif)
103