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![en-us_image_0000001232162312](figures/en-us_image_0000001232162312.gif)
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci## Setting Styles and Attributes
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ciUse the **&lt;slider&gt;** 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![en-us_image_0000001232003000](figures/en-us_image_0000001232003000.gif)
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![en-us_image_0000001276003517](figures/en-us_image_0000001276003517.gif)
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 **&lt;rating&gt;** 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![en-us_image_0000001275803169](figures/en-us_image_0000001275803169.gif)
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![en-us_image_0000001275922997](figures/en-us_image_0000001275922997.gif)
215