slider-100.uvue 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <template>
  2. <!-- #ifdef APP -->
  3. <scroll-view class="page">
  4. <!-- #endif -->
  5. <page-head :title="title"></page-head>
  6. <view class="grid-view">
  7. <slider ref="slider" class="slider" v-for="(_, index) in 100" :key="index" @changing="sliderChanging"
  8. @change="sliderChange" :value="sliderValue" :block-size="20" :show-value="true" />
  9. </view>
  10. <!-- #ifdef APP -->
  11. </scroll-view>
  12. <!-- #endif -->
  13. <view :style="{'height': safeAreaInsetsBottom}"></view>
  14. </template>
  15. <script>
  16. export default {
  17. data() {
  18. return {
  19. title: 'sliderx100通信性能测试(小程序卡为正常)',
  20. sliderValue: 50,
  21. safeAreaInsetsBottom: 0
  22. }
  23. },
  24. onReady() {
  25. this.safeAreaInsetsBottom = uni.getWindowInfo().safeAreaInsets.bottom;
  26. },
  27. methods: {
  28. sliderChange(e : UniSliderChangeEvent) {
  29. this.updateSliderValue(e.detail.value)
  30. },
  31. sliderChanging(e : UniSliderChangeEvent) {
  32. this.updateSliderValue(e.detail.value)
  33. },
  34. updateSliderValue(value : number) {
  35. // #ifndef MP
  36. // TODO 跳过vue框架,直接修改原生组件
  37. (this.$refs["slider"] as UniSliderElement[]).forEach((item) => {
  38. item.value = value
  39. });
  40. // #endif
  41. // #ifdef MP
  42. this.sliderValue = value
  43. // #endif
  44. }
  45. },
  46. }
  47. </script>
  48. <style>
  49. .page {
  50. flex: 1;
  51. }
  52. .grid-view {
  53. flex-direction: row;
  54. flex-wrap: wrap;
  55. }
  56. .slider {
  57. width: 25%;
  58. margin-top: 1px;
  59. margin-left:0;
  60. margin-right: 0;
  61. margin-bottom: 1px;
  62. }
  63. </style>