slider.uvue 6.5 KB
Newer Older
1
<script>
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
export default {
  data() {
    return {
      sliderValue: 50,
      sliderBlockSize: 20,
      sliderBackgroundColor: "#000000",
      sliderActiveColor: "#FFCC33",
      sliderBlockColor: "#8A6DE9",
      // 组件属性 autotest
      show_value_boolean: false,
      disabled_boolean: false,
      min_input: 0,
      max_input: 100,
      step_input: 1,
      value_input: 0,
      activeColor_input: "#007aff",
      backgroundColor_input: "#e9e9e9",
      block_size_input: 28,
      block_color_input: "#ffffff",
    };
  },
  methods: {
    sliderChange(e: SliderChangeEvent) {
      console.log("value 发生变化:" + e.detail.value);
    },
    slider_click() {
      console.log("组件被点击时触发");
    },
    slider_touchstart() {
      console.log("手指触摸动作开始");
    },
    slider_touchmove() {
      console.log("手指触摸后移动");
    },
    slider_touchcancel() {
      console.log("手指触摸动作被打断,如来电提醒,弹窗");
    },
    slider_touchend() {
      console.log("手指触摸动作结束");
    },
    slider_tap() {
      console.log("手指触摸后马上离开");
    },
    slider_longpress() {
      console.log(
        "如果一个组件被绑定了 longpress 事件,那么当用户长按这个组件时,该事件将会被触发。"
      );
    },
    slider_change() {
      console.log("完成一次拖动后触发的事件,event.detail = {value: value}");
    },
    slider_changing() {
      console.log("拖动过程中触发的事件,event.detail = {value: value}");
    },
    change_show_value_boolean(checked: boolean) {
      this.show_value_boolean = checked;
    },
    change_disabled_boolean(checked: boolean) {
      this.disabled_boolean = checked;
    },
    confirm_min_input(value: number) {
      this.min_input = value;
    },
    confirm_max_input(value: number) {
      this.max_input = value;
    },
    confirm_step_input(value: number) {
      this.step_input = value;
    },
    confirm_value_input(value: number) {
      this.value_input = value;
    },
    confirm_activeColor_input(value: string) {
      this.activeColor_input = value;
    },
    confirm_backgroundColor_input(value: string) {
      this.backgroundColor_input = value;
    },
    confirm_block_size_input(value: number) {
      this.block_size_input = value;
    },
    confirm_block_color_input(value: string) {
      this.block_color_input = value;
    },
  },
};
H
hdx 已提交
88 89
</script>

90
<template>
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
  <view class="main">
    <slider
      :disabled="disabled_boolean"
      :min="min_input"
      :max="max_input"
      :step="step_input"
      :value="value_input"
      :activeColor="activeColor_input"
      :backgroundColor="backgroundColor_input"
      :block-size="block_size_input"
      :block-color="block_color_input"
      :show-value="show_value_boolean"
      @click="slider_click"
      @touchstart="slider_touchstart"
      @touchmove="slider_touchmove"
      @touchcancel="slider_touchcancel"
      @touchend="slider_touchend"
      @tap="slider_tap"
      @longpress="slider_longpress"
      @change="slider_change"
      @changing="slider_changing"
      style="width: 90%"
      ><text>uni-app-x</text></slider
    >
  </view>

H
hdx 已提交
117
  <!-- #ifdef APP -->
118
  <scroll-view style="flex: 1">
H
hdx 已提交
119 120 121
    <!-- #endif -->
    <view class="content nvue">
      <page-head title="组件属性"></page-head>
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
      <boolean-data
        :defaultValue="false"
        title="是否显示当前 value"
        @change="change_show_value_boolean"
      ></boolean-data>
      <boolean-data
        :defaultValue="false"
        title="是否禁用"
        @change="change_disabled_boolean"
      ></boolean-data>
      <input-data
        defaultValue="0"
        title="slider 最小值"
        type="number"
        @confirm="confirm_min_input"
      ></input-data>
      <input-data
        defaultValue="100"
        title="slider 最大值"
        type="number"
        @confirm="confirm_max_input"
      ></input-data>
      <input-data
        defaultValue="1"
        title="slider 步长,取值必须大于 0,并且可被(max - min)整除"
        type="number"
        @confirm="confirm_step_input"
      ></input-data>
      <input-data
        defaultValue="0"
        title="radio当前取值"
        type="number"
        @confirm="confirm_value_input"
      ></input-data>
      <input-data
        defaultValue="#007aff"
        title="slider 滑块左侧已选择部分的线条颜色"
        type="text"
        @confirm="confirm_activeColor_input"
      ></input-data>
      <input-data
        defaultValue="#e9e9e9"
        title="radio背景条的颜色"
        type="text"
        @confirm="confirm_backgroundColor_input"
      ></input-data>
      <input-data
        defaultValue="28"
        title="radio滑块的大小,取值范围为 12 - 28"
        type="number"
        @confirm="confirm_block_size_input"
      ></input-data>
      <input-data
        defaultValue="#ffffff"
        title="滑块颜色"
        type="text"
        @confirm="confirm_block_color_input"
      ></input-data>
H
hdx 已提交
180
    </view>
181

H
hdx 已提交
182 183 184 185 186 187
    <view class="uni-padding-wrap">
      <page-head title="默认及使用"></page-head>
      <view class="uni-title">显示当前value</view>
      <view>
        <slider @change="sliderChange" :value="50" :show-value="true" />
      </view>
188

H
hdx 已提交
189
      <view class="uni-title">设置步进:step=10跳动</view>
H
hdx 已提交
190 191 192 193 194
      <view>
        <view class="uni-row">
          <text>0</text>
          <text class="m-l-a">100</text>
        </view>
H
hdx 已提交
195
        <slider @change="sliderChange" :value="60" :step="10" />
H
hdx 已提交
196
      </view>
197

H
hdx 已提交
198 199
      <view class="uni-title">设置最小/最大值</view>
      <view>
200 201 202 203 204 205 206
        <slider
          @change="sliderChange"
          :value="100"
          :min="50"
          :max="200"
          :show-value="true"
        />
H
hdx 已提交
207
      </view>
208

H
hdx 已提交
209 210
      <view class="uni-title">不同颜色和大小的滑块</view>
      <view>
211 212 213 214 215 216 217 218 219
        <slider
          class="slider-custom-color-and-size"
          @change="sliderChange"
          :value="sliderValue"
          :backgroundColor="sliderBackgroundColor"
          :activeColor="sliderActiveColor"
          :blockColor="sliderBlockColor"
          :block-size="sliderBlockSize"
        />
H
hdx 已提交
220 221 222 223 224
      </view>
    </view>
    <!-- #ifdef APP -->
  </scroll-view>
  <!-- #endif -->
225 226
</template>

H
hdx 已提交
227
<style>
228 229 230 231 232 233 234
.main {
  max-height: 500rpx;
  padding: 10rpx 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  flex-direction: row;
  justify-content: center;
}
H
hdx 已提交
235

236 237 238 239 240
.main .list-item {
  width: 100%;
  height: 200rpx;
  border: 1px solid #666;
}
241

242 243 244 245
.m-l-a {
  margin-left: auto;
}
</style>