js写进度条

<script language="javascript">
// Timer Bar - Version 1.0
// Author: Brian Gosselin of http://scriptasylum.com
// Script featured on http://www.dynamicdrive.com

var loadedcolor='darkgray' ;       // PROGRESS BAR COLOR
var unloadedcolor='lightgrey';     // COLOR OF UNLOADED AREA
var bordercolor='navy';            // COLOR OF THE BORDER
var barheight=15;                  // HEIGHT OF PROGRESS BAR IN PIXELS
var barwidth=300;                  // WIDTH OF THE BAR IN PIXELS
var waitTime=5;                   // NUMBER OF SECONDS FOR PROGRESSBAR

// THE FUNCTION BELOW CONTAINS THE ACTION(S) TAKEN ONCE BAR REACHES 100%.
// IF NO ACTION IS DESIRED, TAKE EVERYTHING OUT FROM BETWEEN THE CURLY BRACES ({})
// BUT LEAVE THE FUNCTION NAME AND CURLY BRACES IN PLACE.
// PRESENTLY, IT IS SET TO DO NOTHING, BUT CAN BE CHANGED EASILY.
// TO CAUSE A REDIRECT TO ANOTHER PAGE, INSERT THE FOLLOWING LINE:
// window.location="http://redirect_page.html";
// JUST CHANGE THE ACTUAL URL OF COURSE :)

var action=function()
{
alert("52515.net欢迎你!");
//window.location="http://www.dynamicdrive.com
}

//*****************************************************//
//**********  DO NOT EDIT BEYOND THIS POINT  **********//
//*****************************************************//

var ns4=(document.layers)?true:false;
var ie4=(document.all)?true:false;
var blocksize=(barwidth-2)/waitTime/10;
var loaded=0;
var Pbouter;
var Pbdone;
var PBbckgnd;
var Pid=0;
var txt='';
if(ns4){
txt+='<table border=0 cellpadding=0 cellspacing=0><tr><td>';
txt+='<ilayer name="Pbouter" visibility="hide" height="'+barheight+'" width="'+barwidth+'" οnmοuseup="hidebar()">';
txt+='<layer width="'+barwidth+'" height="'+barheight+'" bgcolor="'+bordercolor+'" top="0" left="0"></layer>';
txt+='<layer width="'+(barwidth-2)+'" height="'+(barheight-2)+'" bgcolor="'+unloadedcolor+'" top="1" left="1"></layer>';
txt+='<layer name="Pbdone" width="'+(barwidth-2)+'" height="'+(barheight-2)+'" bgcolor="'+loadedcolor+'" top="1" left="1"></layer>';
txt+='</ilayer>';
txt+='</td></tr></table>';
}else{
txt+='<div id="Pbouter" οnmοuseup="hidebar()" style="position:relative; visibility:hidden; background-color:'+bordercolor+'; width:'+barwidth+'px; height:'+barheight+'px;">';
txt+='<div style="position:absolute; top:1px; left:1px; width:'+(barwidth-2)+'px; height:'+(barheight-2)+'px; background-color:'+unloadedcolor+'; font-size:1px;"></div>';
txt+='<div id="Pbdone" style="position:absolute; top:1px; left:1px; width:0px; height:'+(barheight-2)+'px; background-color:'+loadedcolor+'; font-size:1px;"></div>';
txt+='</div>';
}

document.write(txt);

function incrCount(){
window.status="Loading…";
loaded++;
if(loaded<0)loaded=0;
if(loaded>=waitTime*10){
clearInterval(Pid);
loaded=waitTime*10;
setTimeout('hidebar()',100);
}
resizeEl(Pbdone, 0, blocksize*loaded, barheight-2, 0);
}

function hidebar(){
clearInterval(Pid);
window.status='';
//if(ns4)Pbouter.visibility="hide";
//else Pbouter.style.visibility="hidden";
action();
}

//THIS FUNCTION BY MIKE HALL OF BRAINJAR.COM
function findlayer(name,doc){
var I,layer;
for(I=0;I<doc.layers.length;I++){
layer=doc.layers[I];
if(layer.name==name)return layer;
if(layer.document.layers.length>0)
if((layer=findlayer(name,layer.document))!=null)
return layer;
}
return null;
}

function progressBarInit(){
Pbouter=(ns4)?findlayer('Pbouter',document):(ie4)?document.all['Pbouter']:document.getElementById('Pbouter');
Pbdone=(ns4)?Pbouter.document.layers['Pbdone']:(ie4)?document.all['Pbdone']:document.getElementById('Pbdone');
resizeEl(Pbdone,0,0,barheight-2,0);
if(ns4)Pbouter.visibility="show";
else Pbouter.style.visibility="visible";
Pid=setInterval('incrCount()',95);
}

function resizeEl(id,t,r,b,l){
if(ns4){
id.clip.left=l;
id.clip.top=t;
id.clip.right=r;
id.clip.bottom=b;
}else id.style.width=r+'px';
}

window.οnlοad=progressBarInit;

</script>
本篇文章来源于《无忧WEB技术网》转载请以链接形式注明出处 网址:http://www.100xue.cn/web/web_11716481852.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在`app.vue`页面中添加进度条,你可以使用Vue.js提供的`<transition>`组件和`<progress>`组件。 下面是一个简单的示例代码: ```html <template> <div id="app"> <!-- 进度条 --> <transition name="fade"> <progress v-show="isLoading" class="progress" :value="progress" max="100"></progress> </transition> <!-- 页面内容 --> <router-view></router-view> </div> </template> <script> export default { data() { return { isLoading: false, // 是否显示进度条 progress: 0 // 进度条进度(0-100) }; }, methods: { startLoading() { // 显示进度条 this.isLoading = true; // 进度条进度从0开始 this.progress = 0; // 模拟加载过程 let interval = setInterval(() => { if (this.progress < 100) { this.progress += 10; // 每次增加10% } else { // 加载完成,隐藏进度条 clearInterval(interval); this.isLoading = false; } }, 500); } }, mounted() { // 监听路由变化,开始加载页面时显示进度条 this.$router.beforeEach((to, from, next) => { this.startLoading(); next(); }); } }; </script> <style> /* 进度条样式 */ .progress { position: fixed; top: 0; left: 0; width: 100%; height: 5px; background-color: #eee; z-index: 9999; } /* 进度条动画 */ .fade-enter-active, .fade-leave-active { transition: width 0.5s ease; } .fade-enter, .fade-leave-to { width: 0%; } </style> ``` 在这个示例中,我们使用了`<transition>`组件和`<progress>`组件来实现进度条。在`data`中定义了两个变量`isLoading`和`progress`,分别表示是否显示进度条进度条的进度。在`startLoading`方法中,我们使用了`setInterval`来模拟加载过程,每次增加10%的进度,当进度达到100%时,隐藏进度条。在`mounted`生命周期中,我们使用了`$router.beforeEach`来监听路由变化,当页面开始加载时,调用`startLoading`方法显示进度条。 最后,我们使用了一些简单的CSS样式来美化进度条,并实现了进度条的动画效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值