进度条制作

<div class="dis_in_bl info fleft">
<div class="sprite_index f1"></div>
<div class="deposit rel">
<div class="tit abs">存款到账</div>
<div class="tip abs">平均时间</div>
<div class="unit abs">秒</div>
<div class="num abs" id="deposit_num">27</div>
<div class="load sprite_load abs">
<div class="load_s sprite_load abs"></div>
<div class="load_e abs">
<div class="load_rate sprite_load abs" id="deposit"></div>
</div>
</div>
</div>
<div class="take rel">
<div class="tit abs">提款到账</div>
<div class="tip abs">平均时间</div>
<div class="unit abs">分</div>
<div class="num abs" id="take_num">2'35</div>
<div class="load sprite_load abs">
<div class="load_s sprite_load abs"></div>
<div class="load_e abs">
<div class="load_rate sprite_load abs" id="take"></div>
</div>
</div>
</div>
<div class="bank rel">
<div class="tit abs">便捷的银行服务</div>
<div class="icon abs">VISA 银联</div>
<div class="tip abs">目前我们支付机构有:</div>
<div class="unit abs">家</div>
<div class="num abs" id="bank_num">28</div>
</div>
<div class="scroll_h">
<div id="deposit_s">
<div></div>
</div>
<div id="take_s">
<div></div>
</div>
<div id="bank_s">
<div></div>
</div>
</div>

</div>

$(function(){

//rate_num_show
$("#deposit_s").scroll(function () {
setNumber("deposit","s");
});
$("#take_s").scroll(function () {
setNumber("take","m");
});
$("#bank_s").scroll(function () {
setNumber("bank","s");
});
$(window).scroll(function () {
scrollOn();
});
scrollOn();

}


function setRate(id,maxNum,value,time,easing){
var rate = Math.round(value*1000/maxNum)/10;
rate = rate-100;
if(rate > 0){rate = 0;}
if(id != "bank"){
$("#"+id).animate({"left":rate+"%"},time,easing,function(){});
}
$("#"+id+"_s").animate({scrollTop: value},time,easing,function(){});
}


function setNumber(id,type){
var value;
if(type == "s"){
value = $("#"+id+"_s").scrollTop();
value = Math.round(value);
}else if(type == "m"){
   var temp = $("#"+id+"_s").scrollTop();
temp = Math.round(temp);
value = Math.floor(temp/60)+"'";
if(temp%60 < 10){
value += "0"+(temp%60);
} else{
value += (temp%60);
}
}
$("#"+id+"_num").html(value);
}


function scrollOn(){
var showPosition = $(window).height() + $(window).scrollTop();
if(showPosition > 1000 && depositShow){
depositShow = false;
setRate("deposit",90,27,2000,"easeOutCirc");
}
if(showPosition > 1100 && takeShow){
takeShow = false;
setRate("take",240,155,2000,"easeOutCirc");
}
if(showPosition > 1200 && bankShow){
bankShow = false;
setRate("bank",90,28,2000,"easeOutSine");
}
}

不同编程语言有不同的软件进度条制作方法,以下是使用C++和Python制作软件进度条的示例: ### C++(使用Qt框架) 在C++中使用Qt框架制作软件启动进度条,需要在`main.cpp`文件中编写代码。以下是示例代码: ```cpp #include <QApplication> #include <QPixmap> // 假设MySplashScreen和FreezerSystem类已定义 // 这里省略类的具体定义 int main(int argc, char *argv[]) { QApplication a(argc, argv); // 启动动画点开软件先加载启动进度条 QPixmap pix("./picture/bar.png");// 获取背景进度图大小,设置进度条位置 MySplashScreen sp(pix); sp.setRange(0, 100);// 进度条长度范围 sp.show(); a.processEvents(); FreezerSystem w(&sp);// 软件构造,即软件内容加载 // 软件加载完成进行进度条展示 for (int i = 0; i < 100; i++) { sp.updateNum(i); } w.setWindowFlags(Qt::FramelessWindowHint); w.show(); return a.exec(); } ``` 上述代码中,首先创建了一个`QApplication`对象,接着获取背景进度图并创建`MySplashScreen`对象,设置进度条范围并显示。之后进行软件内容加载,通过循环更新进度条数值,最后显示软件窗口并进入应用程序的事件循环[^1]。 ### Python #### 带时间的进度条 ```python import time scale = 50 print("开始执行".center(scale//2, "-")) start = time.perf_counter() for i in range(scale + 1): a = "x" * i b = "." * (scale - i) c = (i / scale) * 100 dur = time.perf_counter() - start print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c, a, b, dur), end="") time.sleep(0.1) print("\n" + "完成".center(scale//2, "-")) ``` 此代码通过`time`模块记录时间,使用循环和字符串拼接的方式模拟进度条的动态效果,在每次循环中更新进度条的显示和已用时间[^2]。 #### 使用PySimpleGUI库 ```python import PySimpleGUI as sg import time mylist = [1, 2, 3, 4, 5, 6, 7, 8] progressbar = [ [sg.ProgressBar(len(mylist), orientation="h", size=(51, 10), key="progressbar")] ] outputwin = [ [sg.Output(size=(78, 20))] ] layout = [ [sg.Frame("Progress", layout=progressbar)], [sg.Frame("Output", layout=outputwin)], [sg.Submit("Start"), sg.Cancel()] ] window = sg.Window("Custom Progress Meter", layout) progress_bar = window["progressbar"] while True: event, values = window.read(timeout=10) if event == "Cancel" or event is None: break elif event == "Start": for i, item in enumerate(mylist): print(item) time.sleep(1) progress_bar.UpdateBar(i + 1) window.close() ``` 该代码使用`PySimpleGUI`库创建了一个自定义的进度条界面,通过`while`循环监听事件,当点击`Start`按钮时,遍历列表元素,每处理一个元素更新一次进度条[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值