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
更多关于uni-app slider不显示进度的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app 中使用 <slider> 组件时,如果进度条不显示,可能有以下几种原因和解决方案:
1. 检查 value 属性
<slider> 组件的 value 属性用于设置当前进度值。如果 value 的值不在 min 和 max 范围内,进度条可能不会显示。
<template>
  <slider :value="50" min="0" max="100"></slider>
</template>
确保 value 的值在 min 和 max 之间。
2. 检查 min 和 max 属性
min 和 max 属性分别定义了滑块的最小值和最大值。如果 min 和 max 的值设置不当,可能会导致进度条不显示。
<template>
  <slider :value="50" min="0" max="100"></slider>
</template>
确保 min 和 max 的值合理且 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>
        
      
                    
                  
                    
