lime-slider.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  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>
  66. export default {
  67. data() {
  68. return {
  69. value: 50,
  70. value2: [20,50],
  71. value3: 10,
  72. value4: 10,
  73. }
  74. }
  75. }
  76. </script>
  77. <style lang="scss">
  78. .row{
  79. display: flex;
  80. flex-direction: row;
  81. flex-wrap: wrap;
  82. }
  83. .custom-thumb {
  84. display: inline-block;
  85. width: 42px;
  86. padding: 2px 0;
  87. color: #000;
  88. font-size: 12px;
  89. font-weight: 700;
  90. line-height: 18px;
  91. text-align: center;
  92. background-color: #ffb400;
  93. border-radius: 100px;
  94. box-sizing: content-box;
  95. }
  96. .demo-block {
  97. margin: 32px 15px 0;
  98. // overflow: visible;
  99. &.card{
  100. background-color: white;
  101. padding: 30rpx;
  102. margin-bottom: 20rpx !important;
  103. }
  104. &__title {
  105. margin: 0;
  106. margin-top: 8px;
  107. &-text {
  108. color: rgba(0, 0, 0, 0.6);
  109. font-weight: 400;
  110. font-size: 14px;
  111. line-height: 16px;
  112. display: flex;
  113. &.large {
  114. color: rgba(0, 0, 0, 0.9);
  115. font-size: 18px;
  116. font-weight: 700;
  117. line-height: 26px;
  118. }
  119. &.ultra {
  120. color: rgba(0, 0, 0, 0.9);
  121. font-size: 24px;
  122. font-weight: 700;
  123. line-height: 32px;
  124. }
  125. }
  126. }
  127. &__desc-text {
  128. color: rgba(0, 0, 0, 0.6);
  129. margin: 8px 16px 0 0;
  130. font-size: 14px;
  131. line-height: 22px;
  132. }
  133. &__body {
  134. margin: 16px 0;
  135. overflow: visible;
  136. .demo-block {
  137. // margin-top: 0px;
  138. margin: 0;
  139. }
  140. }
  141. }
  142. </style>