source: trunk/phpgwapi/js/progressbar/xp_progress.js @ 2

Revision 2, 2.6 KB checked in by niltonneto, 17 years ago (diff)

Removida todas as tags usadas pelo CVS ($Id, $Source).
Primeira versão no CVS externo.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1// xp_progressbar
2// Copyright 2004 Brian Gosselin of ScriptAsylum.com
3//
4// v1.0 - Initial release
5// v1.1 - Added ability to pause the scrolling action (requires you to assign
6//        the bar to a unique arbitrary variable).
7//      - Added ability to specify an action to perform after a x amount of
8//      - bar scrolls. This requires two added arguments.
9// v1.2 - Added ability to hide/show each bar (requires you to assign the bar
10//        to a unique arbitrary variable).
11
12// var xyz = createBar(
13// total_width,
14// total_height,
15// background_color,
16// border_width,
17// border_color,
18// block_color,
19// scroll_speed,
20// block_count,
21// scroll_count,
22// action_to_perform_after_scrolled_n_times
23// )
24
25var w3c=(document.getElementById)?true:false;
26var ie=(document.all)?true:false;
27var N=-1;
28var progressBar;
29
30function createBar(w,h,bgc,brdW,brdC,blkC,speed,blocks,count,action, top, left){
31
32        if(ie||w3c){
33                var t='<div id="_xpbar'+(++N)+'" style="visibility:hidden; position:relative; overflow:hidden; width:'+w+'px; height:'+h+'px; background-color:'+bgc+'; border-color:'+brdC+'; top:'+top+';left:'+left+';border-width:'+brdW+'px; border-style:solid; font-size:1px;">';
34                t+='<span id="blocks'+N+'" style="left:-'+(h*2+1)+'px; position:absolute; font-size:1px">';
35                for(i=0;i<blocks;i++){
36                        t+='<span style="background-color:'+blkC+'; left:-'+((h*i)+i)+'px; font-size:1px; position:absolute; width:'+h+'px; height:'+h+'px; '
37                        t+=(ie)?'filter:alpha(opacity='+(100-i*(100/blocks))+')':'-Moz-opacity:'+((100-i*(100/blocks))/100);
38                        t+='"></span>';
39                }
40       
41                t+='</span></div>';
42                document.write(t);
43                var bA=(ie)?document.all['blocks'+N]:document.getElementById('blocks'+N);
44                bA.bar=(ie)?document.all['_xpbar'+N]:document.getElementById('_xpbar'+N);
45                bA.blocks=blocks;
46                bA.N=N;
47                bA.w=w;
48                bA.h=h;
49                bA.speed=speed;
50                bA.ctr=0;
51                bA.count=count;
52                bA.action=action;
53                bA.togglePause=togglePause;
54                bA.showBar=function(){
55                        this.bar.style.visibility="visible";
56                }
57                bA.hideBar=function(){
58                        this.bar.style.visibility="hidden";
59                }
60                bA.tid=setInterval('startBar('+N+')',speed);
61                this.progressBar = bA;
62                return bA;
63        }
64}
65
66function startBar(bn){
67        var t=(ie)?document.all['blocks'+bn]:document.getElementById('blocks'+bn);
68        if(parseInt(t.style.left)+t.h+1-(t.blocks*t.h+t.blocks)>t.w)    {
69                t.style.left=-(t.h*2+1)+'px';
70                t.ctr++;
71                if(t.ctr>=t.count)      {
72                        eval(t.action);
73                        t.ctr=0;
74                }
75        }
76        else
77                t.style.left=(parseInt(t.style.left)+t.h+1)+'px';
78}
79
80function togglePause() {
81        if(this.tid==0) {
82                this.tid=setInterval('startBar('+this.N+')',this.speed);
83        }       
84        else {
85                clearInterval(this.tid);
86                this.tid=0;
87        }
88}
Note: See TracBrowser for help on using the repository browser.