uni-app slider不显示进度

uni-app slider不显示进度

信息类别 信息内容
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 win10
HBuilderX 正式
HBuilderX版本号 3.99
手机系统 Android
手机系统版本号 Android 13
手机厂商 Nokia
手机机型 X30
页面类型 nvue
Vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

<template>
<view class="video">
<video id="myVideo" class="video" objectFit="fill" :src="src" :autoplay="index==0" :play-strategy="strategy"
enable-progress-gesture="false" :poster="item.image" :controls="controls" @timeupdate="onTimeupdate"
@play="onPlay" @pause="onPause" @ended="onEnded" @error="onError" @click="onClick"></video>
<view class="play" v-if="!playing">
<image style="width: 100rpx;height: 100rpx;" src="../../static/video/play.png" mode="scaleToFill"></image>
</view>
<view class="info">
<text class="title">{{item.name}}</text>
<text class="episode">{{episode}}</text>
<view class="action" @click.stop="(e)=>{}">
<view style="flex-direction: row;">
<text class="intro">共{{item.number}}集·{{item.name}}</text>
<view class="next" @click="onContinue">
<text style="color: white;font-size: 25rpx;">继续</text>
</view>
</view>
</view>
<view>
<slider class="progress" activeColor="white" backgroundColor="rgba(255, 255, 255, 0.2)"
block-size="5" :value="percent" @change="onSlide" @changing="onSliding" :disabled="lock"
v-if="!controls" />
</view>
</view>
</view>
</template>

操作步骤:

APP打开的第一个界面包含video和slider, slider根据video播放进度显示进度。当APP首次安装后打开,slider不显示进度。点击slider,事件也是在video上响应。第二次打开APP可以恢复正常。

预期结果:

slider每次都正常显示进度

实际结果:

当APP首次安装后打开,slider不显示进度

bug描述:

APP打开的第一个界面包含video和slider, slider根据video播放进度显示进度。当APP首次安装后打开,slider不显示进度。点击slider,事件也是在video上响应。第二次打开APP可以恢复正常。 可以明显看到首次打开APP时,slider渲染较慢,会先显示video再显示slider,怀疑跟slider渲染较慢有关系。


更多关于uni-app slider不显示进度的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app slider不显示进度的实战教程也可以访问 https://www.itying.com/category-93-b0.html


uni-app 中使用 <slider> 组件时,如果进度条不显示,可能有以下几种原因和解决方案:

1. 检查 value 属性

<slider> 组件的 value 属性用于设置当前进度值。如果 value 的值不在 minmax 范围内,进度条可能不会显示。

<template>
  <slider :value="50" min="0" max="100"></slider>
</template>

确保 value 的值在 minmax 之间。

2. 检查 minmax 属性

minmax 属性分别定义了滑块的最小值和最大值。如果 minmax 的值设置不当,可能会导致进度条不显示。

<template>
  <slider :value="50" min="0" max="100"></slider>
</template>

确保 minmax 的值合理且 min 小于 max

3. 检查样式问题

如果自定义了 <slider> 的样式,可能会导致进度条不显示。检查是否有样式覆盖了进度条的默认样式。

<template>
  <slider :value="50" min="0" max="100" class="custom-slider"></slider>
</template>

<style>
.custom-slider {
  /* 确保没有覆盖进度条的样式 */
}
</style>

4. 检查平台兼容性

不同平台(如微信小程序、H5、App等)对 <slider> 组件的支持可能有所不同。确保在当前平台上 <slider> 组件是可用的。

5. 检查事件绑定

如果绑定了 @change@changing 事件,确保事件处理函数没有影响进度条的显示。

<template>
  <slider :value="sliderValue" min="0" max="100" @change="onSliderChange"></slider>
</template>

<script>
export default {
  data() {
    return {
      sliderValue: 50
    };
  },
  methods: {
    onSliderChange(e) {
      console.log('Slider value changed:', e.detail.value);
    }
  }
};
</script>

6. 检查 disabled 属性

如果 disabled 属性设置为 true,滑块将被禁用,进度条可能不会显示。

<template>
  <slider :value="50" min="0" max="100" :disabled="false"></slider>
</template>

确保 disabled 属性为 false

7. 检查 step 属性

step 属性定义了滑块的步长。如果 step 设置不当,可能会导致进度条不显示。

<template>
  <slider :value="50" min="0" max="100" step="1"></slider>
</template>

确保 step 的值合理。

8. 检查父组件样式

如果 <slider> 组件的父组件有样式限制(如 overflow: hidden),可能会导致 <slider> 组件不显示。

<template>
  <div style="overflow: visible;">
    <slider :value="50" min="0" max="100"></slider>
  </div>
</template>
回到顶部