Salve a tutti gente
ho un problema esistenziale....
sono un niubbio di js (e questo è già un problema)
sto cercando di mettere insieme una progress bar per un gioco, ne ho trovater parecchie, ma che funzionano solo una alla volta, a me serve una configurazione fatta in modo da poterne usare piu di una alla volta
ho trovato questa su un sito
// xp_progressbar
// Copyright 2004 Brian Gosselin of ScriptAsylum.com
//
// v1.0 - Initial release
// v1.1 - Added ability to pause the scrolling action (requires you to assign
// the bar to a unique arbitrary variable).
// - Added ability to specify an action to perform after a x amount of
// - bar scrolls. This requires two added arguments.
// v1.2 - Added ability to hide/show each bar (requires you to assign the bar
// to a unique arbitrary variable).
// var xyz = createBar(
// total_width,
// total_height,
// background_color,
// border_width,
// border_color,
// block_color,
// scroll_speed,
// block_count,
// scroll_count,
// action_to_perform_after_scrolled_n_times
// )
var w3c=(document.getElementById)?true:false;
var ie=(document.all)?true:false;
var N=-1;
function createBar(w,h,bgc,brdW,brdC,blkC,speed,blocks,coun t,action){
if(ie||w3c){
var t='<div id="_xpbar'+(++N)+'" style="visibility:visible; position:relative; overflow:hidden; width:'+w+'px; height:'+h+'px; background-color:'+bgc+'; border-color:'+brdC+'; border-width:'+brdW+'px; border-style:solid; font-size:1px;">';
t+='<span id="blocks'+N+'" style="left:-'+(h*2+1)+'px; position:absolute; font-size:1px">';
for(i=0;i<blocks;i++){
t+='<span style="background-color:'+blkC+'; left:-'+((h*i)+i)+'px; font-size:1px; position:absolute; width:'+h+'px; height:'+h+'px; '
t+=(ie)?'filter:alpha(opacity='+(100-i*(100/blocks))+')':'-Moz-opacity:'+((100-i*(100/blocks))/100);
t+='"></span>';
}
t+='</span></div>';
document.write(t);
var bA=(ie)?document.all['blocks'+N]:document.getElementById('blocks'+N);
bA.bar=(ie)?document.all['_xpbar'+N]:document.getElementById('_xpbar'+N);
bA.blocks=blocks;
bA.N=N;
bA.w=w;
bA.h=h;
bA.speed=speed;
bA.ctr=0;
bA.count=count;
bA.action=action;
bA.togglePause=togglePause;
bA.showBar=function(){this.bar.style.visibility="v isible";}
bA.hideBar=function(){this.bar.style.visibility="h idden";}
bA.tid=setInterval('startBar('+N+')',speed);
return bA;
}}
function startBar(bn){
var t=(ie)?document.all['blocks'+bn]:document.getElementById('blocks'+bn);
if(parseInt(t.style.left)+t.h+1-(t.blocks*t.h+t.blocks)>t.w){
t.style.left=-(t.h*2+1)+'px';
t.ctr++;
if(t.ctr>=t.count){
eval(t.action);
t.ctr=0;
}}else t.style.left=(parseInt(t.style.left)+t.h+1)+'px';
}
function togglePause(){
if(this.tid==0){
this.tid=setInterval('startBar('+this.N+')',this.s peed);
}else{
clearInterval(this.tid);
this.tid=0;
}}
e nella pagina index questo
<script language="javascript" src="progress.js"></script>
<p align="left">Demo:</p>
<p align="left"><script type="text/javascript">var bar1= createBar(1000,5,'white',1,'black','blue',85,7,3," ");</script>
<p align="left">Demo:</p>
<p align="left"><script type="text/javascript">var bar2= createBar(1000,5,'white',1,'black','blue',1000,85, 1,"");</script>
bellissima niente da dire, e funziona in modo da averne piu di una alla volta...
il problema con questa progress bar è che funziona esattamente ucome una barra di winzoz, cioè a blocchi
mi serve modificarla in modo da averne una che abbia un blocco solo (un div che si estende per intenderci).
sto cercando di mofdificarla in tal senso, ma non penso di riuscire a fare una cosa degna
qualcuno riesce a darmi una mano?
p.s. non riesco a capire perchè se tolgo la span prima della barra mi da errore :S
GRazie a todos
Mauro