1e41f4b71Sopenharmony_ci# <slider> Development 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ciThe **<slider>** component is used to quickly adjust settings, such as the volume and brightness. For details, see [slider](../reference/apis-arkui/arkui-js/js-components-basic-slider.md). 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ci## Creating a <slider> Component 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ciCreate a **<slider>** component in the .hml file under **pages/index**. 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci```html 14e41f4b71Sopenharmony_ci<!-- xxx.hml --> 15e41f4b71Sopenharmony_ci<div class="container"> 16e41f4b71Sopenharmony_ci <slider></slider> 17e41f4b71Sopenharmony_ci</div> 18e41f4b71Sopenharmony_ci``` 19e41f4b71Sopenharmony_ci 20e41f4b71Sopenharmony_ci```css 21e41f4b71Sopenharmony_ci/* xxx.css */ 22e41f4b71Sopenharmony_ci.container { 23e41f4b71Sopenharmony_ci width: 100%; 24e41f4b71Sopenharmony_ci height: 100%; 25e41f4b71Sopenharmony_ci background-color: #F1F3F5; 26e41f4b71Sopenharmony_ci flex-direction: column; 27e41f4b71Sopenharmony_ci justify-content: center; 28e41f4b71Sopenharmony_ci align-items: center; 29e41f4b71Sopenharmony_ci} 30e41f4b71Sopenharmony_ci``` 31e41f4b71Sopenharmony_ci 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci 36e41f4b71Sopenharmony_ci## Setting Styles and Attributes 37e41f4b71Sopenharmony_ci 38e41f4b71Sopenharmony_ciUse the **<slider>** component to set the background color, selected color, and slider color using the **color**, **selected-color**, and **block-color** attributes, respectively. 39e41f4b71Sopenharmony_ci 40e41f4b71Sopenharmony_ci 41e41f4b71Sopenharmony_ci```html 42e41f4b71Sopenharmony_ci<!-- xxx.hml --> 43e41f4b71Sopenharmony_ci<div class="container"> 44e41f4b71Sopenharmony_ci <slider class= "sli"></slider> 45e41f4b71Sopenharmony_ci</div> 46e41f4b71Sopenharmony_ci``` 47e41f4b71Sopenharmony_ci 48e41f4b71Sopenharmony_ci 49e41f4b71Sopenharmony_ci```css 50e41f4b71Sopenharmony_ci/* xxx.css */ 51e41f4b71Sopenharmony_ci.container { 52e41f4b71Sopenharmony_ci width: 100%; 53e41f4b71Sopenharmony_ci height: 100%; 54e41f4b71Sopenharmony_ci flex-direction: column; 55e41f4b71Sopenharmony_ci justify-content: center; 56e41f4b71Sopenharmony_ci align-items: center; 57e41f4b71Sopenharmony_ci background-color: #F1F3F5; 58e41f4b71Sopenharmony_ci} 59e41f4b71Sopenharmony_ci.sli{ 60e41f4b71Sopenharmony_ci color: #fcfcfc; 61e41f4b71Sopenharmony_ci scrollbar-color: aqua; 62e41f4b71Sopenharmony_ci background-color: #b7e3f3; 63e41f4b71Sopenharmony_ci} 64e41f4b71Sopenharmony_ci``` 65e41f4b71Sopenharmony_ci 66e41f4b71Sopenharmony_ci 67e41f4b71Sopenharmony_ci 68e41f4b71Sopenharmony_ciAdd the **mix**, **max**, **value**, **step**, and **mode** attributes to set the minimum value, maximum value, initial value, step, and style of the slider. 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ci 71e41f4b71Sopenharmony_ci```html 72e41f4b71Sopenharmony_ci<!-- xxx.hml --> 73e41f4b71Sopenharmony_ci<div class="container"> 74e41f4b71Sopenharmony_ci <slider min="0" max="100" value="1" step="2" mode="inset" showtips="true"></slider> 75e41f4b71Sopenharmony_ci</div> 76e41f4b71Sopenharmony_ci``` 77e41f4b71Sopenharmony_ci 78e41f4b71Sopenharmony_ci 79e41f4b71Sopenharmony_ci```css 80e41f4b71Sopenharmony_ci/* xxx.css */ 81e41f4b71Sopenharmony_ci.container { 82e41f4b71Sopenharmony_ci width: 100%; 83e41f4b71Sopenharmony_ci height: 100%; 84e41f4b71Sopenharmony_ci flex-direction: column; 85e41f4b71Sopenharmony_ci justify-content: center; 86e41f4b71Sopenharmony_ci align-items: center; 87e41f4b71Sopenharmony_ci background-color: #F1F3F5; 88e41f4b71Sopenharmony_ci} 89e41f4b71Sopenharmony_ci``` 90e41f4b71Sopenharmony_ci 91e41f4b71Sopenharmony_ci 92e41f4b71Sopenharmony_ci 93e41f4b71Sopenharmony_ci> **NOTE** 94e41f4b71Sopenharmony_ci> 95e41f4b71Sopenharmony_ci> Set the **mode** attribute to specify the slider style. It can be set to: 96e41f4b71Sopenharmony_ci> 97e41f4b71Sopenharmony_ci> - **outset**: The slider is on the sliding bar. 98e41f4b71Sopenharmony_ci> 99e41f4b71Sopenharmony_ci> - **inset**: The slider is inside the sliding bar. 100e41f4b71Sopenharmony_ci 101e41f4b71Sopenharmony_ci 102e41f4b71Sopenharmony_ci## Binding Events 103e41f4b71Sopenharmony_ci 104e41f4b71Sopenharmony_ciAdd the **change** event to the **<rating>** component and pass the ChangeEvent attribute when adding the event. 105e41f4b71Sopenharmony_ci 106e41f4b71Sopenharmony_ci 107e41f4b71Sopenharmony_ci```html 108e41f4b71Sopenharmony_ci<!-- xxx.hml --> 109e41f4b71Sopenharmony_ci<div class="container"> 110e41f4b71Sopenharmony_ci <text>slider start value is {{startValue}}</text> 111e41f4b71Sopenharmony_ci <text>slider current value is {{currentValue}}</text> 112e41f4b71Sopenharmony_ci <text>slider end value is {{endValue}}</text> 113e41f4b71Sopenharmony_ci <slider min="0" max="100" value="{{value}}" onchange="setvalue"></slider> 114e41f4b71Sopenharmony_ci</div> 115e41f4b71Sopenharmony_ci``` 116e41f4b71Sopenharmony_ci 117e41f4b71Sopenharmony_ci 118e41f4b71Sopenharmony_ci```css 119e41f4b71Sopenharmony_ci/* xxx.css */ 120e41f4b71Sopenharmony_ci.container { 121e41f4b71Sopenharmony_ci width: 100%; 122e41f4b71Sopenharmony_ci height: 100%; 123e41f4b71Sopenharmony_ci flex-direction: column; 124e41f4b71Sopenharmony_ci justify-content: center; 125e41f4b71Sopenharmony_ci align-items: center; 126e41f4b71Sopenharmony_ci background-color: #F1F3F5; 127e41f4b71Sopenharmony_ci} 128e41f4b71Sopenharmony_ci``` 129e41f4b71Sopenharmony_ci 130e41f4b71Sopenharmony_ci 131e41f4b71Sopenharmony_ci```js 132e41f4b71Sopenharmony_ci// xxx.js 133e41f4b71Sopenharmony_ciexport default { 134e41f4b71Sopenharmony_ci data: { 135e41f4b71Sopenharmony_ci value: 0, 136e41f4b71Sopenharmony_ci startValue: 0, 137e41f4b71Sopenharmony_ci currentValue: 0, 138e41f4b71Sopenharmony_ci endValue: 0, 139e41f4b71Sopenharmony_ci }, 140e41f4b71Sopenharmony_ci setvalue(e) { 141e41f4b71Sopenharmony_ci if (e.mode == "start") { 142e41f4b71Sopenharmony_ci this.value = e.value; 143e41f4b71Sopenharmony_ci this.startValue = e.value; 144e41f4b71Sopenharmony_ci } else if (e.mode == "move") { 145e41f4b71Sopenharmony_ci this.value = e.value; 146e41f4b71Sopenharmony_ci this.currentValue = e.value; 147e41f4b71Sopenharmony_ci } else if (e.mode == "end") { 148e41f4b71Sopenharmony_ci this.value = e.value; 149e41f4b71Sopenharmony_ci this.endValue = e.value; 150e41f4b71Sopenharmony_ci } 151e41f4b71Sopenharmony_ci } 152e41f4b71Sopenharmony_ci} 153e41f4b71Sopenharmony_ci``` 154e41f4b71Sopenharmony_ci 155e41f4b71Sopenharmony_ci 156e41f4b71Sopenharmony_ci 157e41f4b71Sopenharmony_ci 158e41f4b71Sopenharmony_ci## Example Scenario 159e41f4b71Sopenharmony_ci 160e41f4b71Sopenharmony_ciAdjust the value of the slider to change the image size and dynamically print the width and height of the current image. 161e41f4b71Sopenharmony_ci 162e41f4b71Sopenharmony_ci 163e41f4b71Sopenharmony_ci```html 164e41f4b71Sopenharmony_ci<!-- xxx.hml --> 165e41f4b71Sopenharmony_ci<div class="container"> 166e41f4b71Sopenharmony_ci <image src="common/landscape3.jpg" style=" width: {{WidthVal}}px;height:{{HeightVal}}px;margin-top: -150px;"></image> 167e41f4b71Sopenharmony_ci <div class="txt"> 168e41f4b71Sopenharmony_ci <slider min="0" max="100" value="{{value}}" onchange="setvalue"></slider> 169e41f4b71Sopenharmony_ci <text>The width of this picture is {{WidthVal}}</text> 170e41f4b71Sopenharmony_ci <text>The height of this picture is {{HeightVal}}</text> 171e41f4b71Sopenharmony_ci </div> 172e41f4b71Sopenharmony_ci</div> 173e41f4b71Sopenharmony_ci``` 174e41f4b71Sopenharmony_ci 175e41f4b71Sopenharmony_ci 176e41f4b71Sopenharmony_ci```css 177e41f4b71Sopenharmony_ci/* xxx.css */ 178e41f4b71Sopenharmony_ci.container { 179e41f4b71Sopenharmony_ci width: 100%; 180e41f4b71Sopenharmony_ci height: 100%; 181e41f4b71Sopenharmony_ci flex-direction: column; 182e41f4b71Sopenharmony_ci justify-content: center; 183e41f4b71Sopenharmony_ci align-items: center; 184e41f4b71Sopenharmony_ci background-color: #F1F3F5; 185e41f4b71Sopenharmony_ci} 186e41f4b71Sopenharmony_ci.txt{ 187e41f4b71Sopenharmony_ci flex-direction: column; 188e41f4b71Sopenharmony_ci justify-content: center; 189e41f4b71Sopenharmony_ci align-items: center; 190e41f4b71Sopenharmony_ci position: fixed; 191e41f4b71Sopenharmony_ci top: 65%; 192e41f4b71Sopenharmony_ci} 193e41f4b71Sopenharmony_citext{ 194e41f4b71Sopenharmony_ci margin-top: 30px; 195e41f4b71Sopenharmony_ci} 196e41f4b71Sopenharmony_ci``` 197e41f4b71Sopenharmony_ci 198e41f4b71Sopenharmony_ci 199e41f4b71Sopenharmony_ci```js 200e41f4b71Sopenharmony_ci// xxx.js 201e41f4b71Sopenharmony_ciexport default{ 202e41f4b71Sopenharmony_ci data: { 203e41f4b71Sopenharmony_ci value: 0, 204e41f4b71Sopenharmony_ci WidthVal: 200, 205e41f4b71Sopenharmony_ci HeightVal: 200 206e41f4b71Sopenharmony_ci }, 207e41f4b71Sopenharmony_ci setvalue(e) { 208e41f4b71Sopenharmony_ci this.WidthVal = 200 + e.value; 209e41f4b71Sopenharmony_ci this.HeightVal = 200 + e.value 210e41f4b71Sopenharmony_ci } 211e41f4b71Sopenharmony_ci} 212e41f4b71Sopenharmony_ci``` 213e41f4b71Sopenharmony_ci 214e41f4b71Sopenharmony_ci 215