slider-100.uvue 2.6 KB
Newer Older
H
hdx 已提交
1
<template>
DCloud-WZF's avatar
DCloud-WZF 已提交
2
  <!-- #ifdef APP -->
H
hdx 已提交
3
  <scroll-view class="page">
DCloud-WZF's avatar
DCloud-WZF 已提交
4
    <!-- #endif -->
H
hdx 已提交
5 6 7
    <page-head :title="title"></page-head>
    <view class="flex-row">
      <view class="flex-fill">
8
        <slider ref="slider1" v-for="(_, index1) in 25" :key="index1" class="slider" @changing="sliderChanging"
H
hdx 已提交
9
          @change="sliderChange" :value="sliderValue" :block-size="20" :show-value="true" />
H
hdx 已提交
10 11
      </view>
      <view class="flex-fill">
12
        <slider ref="slider2" v-for="(_, index2) in 25" :key="index2" class="slider" @changing="sliderChanging"
H
hdx 已提交
13
          @change="sliderChange" :value="sliderValue" :block-size="20" :show-value="true" />
H
hdx 已提交
14 15
      </view>
      <view class="flex-fill">
16
        <slider ref="slider3" v-for="(_, index3) in 25" :key="index3" class="slider" @changing="sliderChanging"
H
hdx 已提交
17
          @change="sliderChange" :value="sliderValue" :block-size="20" :show-value="true" />
H
hdx 已提交
18 19
      </view>
      <view class="flex-fill">
20
        <slider ref="slider4" v-for="(_, index4) in 25" :key="index4" class="slider" @changing="sliderChanging"
H
hdx 已提交
21
          @change="sliderChange" :value="sliderValue" :block-size="20" :show-value="true" />
H
hdx 已提交
22 23
      </view>
    </view>
DCloud-WZF's avatar
DCloud-WZF 已提交
24 25 26
    <!-- #ifdef APP -->
  </scroll-view>
  <!-- #endif -->
H
hdx 已提交
27 28
</template>

H
hdx 已提交
29
<script>
H
hdx 已提交
30
  import { ComponentPublicInstance } from 'vue';
H
hdx 已提交
31 32 33 34
  export default {
    data() {
      return {
        title: 'slider 滑块 x 100',
H
hdx 已提交
35
        sliderValue: 50
H
hdx 已提交
36
      }
DCloud-WZF's avatar
DCloud-WZF 已提交
37
    },
H
hdx 已提交
38
    methods: {
H
hdx 已提交
39 40 41
      sliderChange(e : SliderChangeEvent) {
        this.updateSliderValue(e.detail.value)
      },
H
hdx 已提交
42
      sliderChanging(e : SliderChangeEvent) {
H
hdx 已提交
43 44 45 46
        this.updateSliderValue(e.detail.value)
      },
      updateSliderValue(value : Number) {
        // this.sliderValue = value
47

W
微调  
wanganxp 已提交
48
        // 跳过vue框架,直接修改原生组件
49
        (this.$refs["slider1"]! as ComponentPublicInstance[]).forEach((item) => {
H
hdx 已提交
50
          item.$data["$sliderValue"] = value
51 52 53
          item.$callMethod("_onRender")
        });
        (this.$refs["slider2"]! as ComponentPublicInstance[]).forEach((item) => {
H
hdx 已提交
54
          item.$data["$sliderValue"] = value
55 56 57
          item.$callMethod("_onRender")
        });
        (this.$refs["slider3"]! as ComponentPublicInstance[]).forEach((item) => {
H
hdx 已提交
58
          item.$data["$sliderValue"] = value
59 60 61
          item.$callMethod("_onRender")
        });
        (this.$refs["slider4"]! as ComponentPublicInstance[]).forEach((item) => {
H
hdx 已提交
62
          item.$data["$sliderValue"] = value
63 64
          item.$callMethod("_onRender")
        });
H
hdx 已提交
65
      }
H
hdx 已提交
66 67
    },
  }
H
hdx 已提交
68 69 70
</script>

<style>
H
hdx 已提交
71 72 73 74 75 76 77
  .page {
    flex: 1;
  }

  .flex-row {
    flex-direction: row;
  }
H
hdx 已提交
78

H
hdx 已提交
79 80 81
  .flex-fill {
    flex: 1;
  }
H
hdx 已提交
82

H
hdx 已提交
83
  .slider {
84
    margin: 1px 0.5px;
H
hdx 已提交
85
  }
H
hdx 已提交
86
</style>