lime-slider.uvue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <template>
  2. <view class="demo-block">
  3. <text class="demo-block__title-text ultra">Slider 滑块</text>
  4. <text class="demo-block__desc-text">滑动型输入器,展示当前值和可选范围、区间、档位。</text>
  5. <view class="demo-block__body">
  6. <view class="demo-block card">
  7. <text class="demo-block__title-text">基础用法{{value}}</text>
  8. <view class="demo-block__body">
  9. <l-slider v-model="value"/>
  10. </view>
  11. </view>
  12. <view class="demo-block card">
  13. <text class="demo-block__title-text">双滑块{{value2.join(',')}}</text>
  14. <view class="demo-block__body">
  15. <l-slider v-model="value2" :range="true"/>
  16. </view>
  17. </view>
  18. <view class="demo-block card">
  19. <text class="demo-block__title-text">指定范围{{value3}}</text>
  20. <view class="demo-block__body">
  21. <l-slider v-model="value3" :min="-50" :max="50"/>
  22. </view>
  23. </view>
  24. <view class="demo-block card">
  25. <text class="demo-block__title-text">禁用</text>
  26. <view class="demo-block__body">
  27. <l-slider v-model="value4" :disabled="true" />
  28. </view>
  29. </view>
  30. <view class="demo-block card">
  31. <text class="demo-block__title-text">指定步长</text>
  32. <view class="demo-block__body">
  33. <l-slider v-model="value" :step="10" />
  34. <view style="height: 10px;"></view>
  35. <l-slider v-model="value2" :step="10" :range="true"/>
  36. </view>
  37. </view>
  38. <view class="demo-block card">
  39. <text class="demo-block__title-text">自定义样式</text>
  40. <view class="demo-block__body">
  41. <l-slider v-model="value" thumb-size="30px" rail-size="4px" track-color="#34c471" />
  42. </view>
  43. </view>
  44. <view class="demo-block card">
  45. <text class="demo-block__title-text">自定义按钮</text>
  46. <view class="demo-block__body">
  47. <l-slider v-model="value" rail-size="4px" track-color="#ffb400">
  48. <template #start-thumb>
  49. <text class="custom-thumb">{{ value }}</text>
  50. </template>
  51. </l-slider>
  52. </view>
  53. </view>
  54. <view class="demo-block card">
  55. <text class="demo-block__title-text">垂直方向</text>
  56. <view class="demo-block__body row" style="height: 200px;">
  57. <l-slider v-model="value" vertical/>
  58. <view style="width: 50px;"></view>
  59. <l-slider v-model="value2" range vertical/>
  60. </view>
  61. </view>
  62. </view>
  63. </view>
  64. </template>
  65. <script setup>
  66. const value = ref(50)
  67. const value2 = ref([20, 50])
  68. const value3 = ref(10)
  69. const value4 = ref(10)
  70. </script>
  71. <style lang="scss">
  72. .row{
  73. flex-direction: row;
  74. flex-wrap: wrap;
  75. }
  76. .custom-thumb {
  77. width: 42px;
  78. padding: 2px 0;
  79. color: #000;
  80. font-size: 12px;
  81. font-weight: 700;
  82. line-height: 18px;
  83. text-align: center;
  84. background-color: #ffb400;
  85. border-radius: 100px;
  86. box-sizing: content-box;
  87. }
  88. .demo-block {
  89. margin: 32px 15px 0;
  90. // overflow: visible;
  91. &.card{
  92. background-color: white;
  93. padding: 30rpx;
  94. margin-bottom: 20rpx !important;
  95. }
  96. &__title {
  97. margin: 0;
  98. margin-top: 8px;
  99. &-text {
  100. color: rgba(0, 0, 0, 0.6);
  101. font-weight: 400;
  102. font-size: 14px;
  103. line-height: 16px;
  104. display: flex;
  105. &.large {
  106. color: rgba(0, 0, 0, 0.9);
  107. font-size: 18px;
  108. font-weight: 700;
  109. line-height: 26px;
  110. }
  111. &.ultra {
  112. color: rgba(0, 0, 0, 0.9);
  113. font-size: 24px;
  114. font-weight: 700;
  115. line-height: 32px;
  116. }
  117. }
  118. }
  119. &__desc-text {
  120. color: rgba(0, 0, 0, 0.6);
  121. margin: 8px 16px 0 0;
  122. font-size: 14px;
  123. line-height: 22px;
  124. }
  125. &__body {
  126. margin: 16px 0;
  127. overflow: visible;
  128. .demo-block {
  129. // margin-top: 0px;
  130. margin: 0;
  131. }
  132. }
  133. }
  134. </style>