文档管理中心
您当前浏览的HarmonyOS 5.0.0(API 12)文档归档不再维护,推荐您使用最新版本。详细请参考文档维护策略变更

slider开发指导

slider为滑动条组件,用来快速调节音量、亮度等。具体用法请参考slider

创建slider组件

在pages/index目录下的hml文件中创建一个slider组件。

收起
自动换行
深色代码主题
复制
  1. <!-- xxx.hml -->
  2. <div class="container">
  3. <slider></slider>
  4. </div>
收起
自动换行
深色代码主题
复制
  1. /* xxx.css */
  2. .container {
  3. width: 100%;
  4. height: 100%;
  5. background-color: #F1F3F5;
  6. flex-direction: column;
  7. justify-content: center;
  8. align-items: center;
  9. }

设置样式和属性

slider组件通过color、selected-color、block-color样式分别为滑动条设置背景颜色、已选择颜色和滑块颜色。

收起
自动换行
深色代码主题
复制
  1. <!-- xxx.hml -->
  2. <div class="container">
  3. <slider class= "sli"></slider>
  4. </div>
收起
自动换行
深色代码主题
复制
  1. /* xxx.css */
  2. .container {
  3. width: 100%;
  4. height: 100%;
  5. flex-direction: column;
  6. justify-content: center;
  7. align-items: center;
  8. background-color: #F1F3F5;
  9. }
  10. .sli{
  11. color: #fcfcfc;
  12. scrollbar-color: aqua;
  13. background-color: #b7e3f3;
  14. }

通过添加mix、max、value、step、mode属性分别为滑动条设置最小值、最大值、初始值、滑动步长和滑动条样式。

收起
自动换行
深色代码主题
复制
  1. <!-- xxx.hml -->
  2. <div class="container">
  3. <slider min="0" max="100" value="1" step="2" mode="inset" showtips="true"></slider>
  4. </div>
收起
自动换行
深色代码主题
复制
  1. /* xxx.css */
  2. .container {
  3. width: 100%;
  4. height: 100%;
  5. flex-direction: column;
  6. justify-content: center;
  7. align-items: center;
  8. background-color: #F1F3F5;
  9. }

说明

mode属性为滑动条样式,可选值为:

  • outset:滑块在滑杆上。

  • inset:滑块在滑杆内。

绑定事件

向slider组件添加change事件,添加时需要传入ChangeEvent参数。

收起
自动换行
深色代码主题
复制
  1. <!-- xxx.hml -->
  2. <div class="container">
  3. <text>slider start value is {{startValue}}</text>
  4. <text>slider current value is {{currentValue}}</text>
  5. <text>slider end value is {{endValue}}</text>
  6. <slider min="0" max="100" value="{{value}}" onchange="setvalue"></slider>
  7. </div>
收起
自动换行
深色代码主题
复制
  1. /* xxx.css */
  2. .container {
  3. width: 100%;
  4. height: 100%;
  5. flex-direction: column;
  6. justify-content: center;
  7. align-items: center;
  8. background-color: #F1F3F5;
  9. }
收起
自动换行
深色代码主题
复制
  1. // xxx.js
  2. export default {
  3. data: {
  4. value: 0,
  5. startValue: 0,
  6. currentValue: 0,
  7. endValue: 0,
  8. },
  9. setvalue(e) {
  10. if (e.mode == "start") {
  11. this.value = e.value;
  12. this.startValue = e.value;
  13. } else if (e.mode == "move") {
  14. this.value = e.value;
  15. this.currentValue = e.value;
  16. } else if (e.mode == "end") {
  17. this.value = e.value;
  18. this.endValue = e.value;
  19. }
  20. }
  21. }

场景示例

开发者可以通过调整滑动条的值来改变图片大小,并且动态打印当前图片的宽和高。

收起
自动换行
深色代码主题
复制
  1. <!-- xxx.hml -->
  2. <div class="container">
  3. <image src="common/landscape3.jpg" style=" width: {{WidthVal}}px;height:{{HeightVal}}px;margin-top: -150px;"></image>
  4. <div class="txt">
  5. <slider min="0" max="100" value="{{value}}" onchange="setvalue"></slider>
  6. <text>The width of this picture is {{WidthVal}}</text>
  7. <text>The height of this picture is {{HeightVal}}</text>
  8. </div>
  9. </div>
收起
自动换行
深色代码主题
复制
  1. /* xxx.css */
  2. .container {
  3. width: 100%;
  4. height: 100%;
  5. flex-direction: column;
  6. justify-content: center;
  7. align-items: center;
  8. background-color: #F1F3F5;
  9. }
  10. .txt{
  11. flex-direction: column;
  12. justify-content: center;
  13. align-items: center;
  14. position: fixed;
  15. top: 65%;
  16. }
  17. text{
  18. margin-top: 30px;
  19. }
收起
自动换行
深色代码主题
复制
  1. // xxx.js
  2. export default{
  3. data: {
  4. value: 0,
  5. WidthVal: 200,
  6. HeightVal: 200
  7. },
  8. setvalue(e) {
  9. this.WidthVal = 200 + e.value;
  10. this.HeightVal = 200 + e.value
  11. }
  12. }

在 指南 中进行搜索
请输入您想要搜索的关键词