uniapp中的progress进度条

官方示例:https://uniapp.dcloud.io/component/progress

效果图:

实现代码:

<template>
    <view>
		<progress :percent="pgList[0]" show-info stroke-width="3" />
		<br>
		<view style="display: flex;">
		    <progress :percent="pgList[1]" stroke-width="3" />
		    <uni-icons type="close" color="#dd524d"></uni-icons>
		</view>
		<br>
		<progress :percent="pgList[2]" stroke-width="3" />
		<br>
		<progress :percent="80" activeColor="#10AEFF" stroke-width="3" />
		<br>
		<button @click="setProgress">设置进度</button>
		<button type="warn" @click="clearProgress">清除进度</button>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                title: 'progress',
                pgList: [0, 0, 0]
            }
        },
        methods: {
            setProgress() {
                this.pgList = [20, 40, 60]
            },
            clearProgress() {
                this.pgList = [0, 0, 0]
            }
        }
    }
</script>

 

### 在 UniApp 中隐藏 WebView 进度条的实现方法 在 UniApp 中,默认情况下,`<web-view>` 并不会自动显示进度条。但如果开发者手动实现了进度条功能(例如通过监听加载事件或使用插件),则需要采取相应措施来隐藏它。以下是几种常见情况下的解决方案: #### 方法一:移除自定义进度条逻辑 如果当前项目中已经集成了带有进度条的 WebView 自定义组件,则可以直接修改其源码以禁用进度条功能。 假设现有代码如下所示: ```java webView.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { if (newProgress == 100) { progressBar.setVisibility(View.GONE); // 加载完成后隐藏进度条 } else { progressBar.setVisibility(View.VISIBLE); // 显示进度条 progressBar.setProgress(newProgress); // 更新进度值 } } }); ``` 为了隐藏进度条,只需删除与 `progressBar` 相关的操作部分即可[^1]。最终简化后的版本应类似于下面的形式: ```java webView.setWebChromeClient(new WebChromeClient()); ``` --- #### 方法二:调整 `<web-view>` 样式属性 对于纯前端层面控制的情况,可通过设置 `webview-style` 来影响 WebView 的外观表现形式。尽管这些样式主要作用于 App 环境而非 H5 页面本身,但仍有可能间接达到隐藏进度条的效果[^3]。 示例代码片段: ```html <view class="page"> <web-view :src="url" class="webview" allow :fullscreen="false" :webview-styles="style" :frameBorder="0" style="width: 100%; height: calc(100% - 10px)"> </web-view> </view> ``` 配合动态计算尺寸的方法确保界面布局合理无误: ```javascript const style = reactive({ width: '100%', height: '100%', bottom: '56px' }); uni.getSystemInfo({ success: (res) => { console.log(res); style.height = res.screenHeight - res.statusBarHeight - res.safeAreaInsets?.bottom - 100 + 'px'; style.bottom = res.safeAreaInsets?.bottom + 56 + 'px'; } }); ``` 此操作虽然不直接影响进度条可见性,但有助于优化整体视觉体验从而减少对其的关注程度[^3]。 --- #### 方法三:关闭页面预览模式 有时启用宽屏视口(`setUseWideViewPort`)以及概览模式(`setLoadWithOverviewMode`)也可能引发不必要的滚动条或其他干扰现象[^4]。适当调整这两项参数或许能缓解此类问题。 ```java settings.setUseWideViewPort(false); settings.setLoadWithOverviewMode(false); ``` 不过需要注意的是,这种做法可能会改变目标网站的实际呈现比例,请谨慎应用。 --- #### 总结说明 以上三种途径分别适用于不同场景下的需求满足。如果是因业务扩展新增了多余UI元素如进度指示器等情况适合采用第一种办法;当单纯追求美观整洁时第二种策略较为理想;最后第三种手段更多偏向技术细节调优方面[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值