Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make Gmail like loading progress bar

I want create a loading progress bar like Gmail in center and top of the page, and work in all browsers

like image 308
MSI Avatar asked Jun 07 '10 03:06

MSI


3 Answers

this is basic code

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
    <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
    <head>
        <style>
            body{
                margin:0px;
            }
            #state{
                width:100px;
                height:30px;
                background:#FEE27C;
                position:fixed !important; 
                position:absolute /* fallback for IE6 */;
            }
        </style>
        <script language=javascript type='text/javascript' >
            function set(){
                var s = screen_now_size();
                margin_right = (s['width']-100)/2;

                //append or change margin right size
                var state_layer = document.getElementById("state");
                state_layer.style.right      = margin_right+"px"
            }

            function screen_now_size(){ // get screen current size
                var a=new Array();
                if(typeof document.compatMode!='undefined'&&document.compatMode!='BackCompat'){
                  a["width"]=document.documentElement.clientWidth;
                  a["height"]=document.documentElement.scrollTop+document.body.clientHeight;
                }else{
                  a["width"]=document.body.clientWidth;
                  a["height"]=document.body.scrollTop+document.documentElement.clientHeight;
                  }
                return a;
            }
        </script>
    </head>
    <body onload='set()'>
        <div id='state'></div>
        <!--for test:-->
        <br><br><br><br><br><br><br><br><br><br><br><br><br><br>
        <br><br><br><br><br><br><br><br><br><br><br><br><br><br>
        <br><br><br><br><br><br><br><br><br><br><br><br><br><br>
        for test
    </body>
    </html>
like image 112
MSI Avatar answered Nov 13 '22 19:11

MSI


You can use the jQuery UI Progressbar plugin. As your page loads the data it needs, update the value of the progress bar.

like image 37
Jeff Avatar answered Nov 13 '22 19:11

Jeff


You sir need to use $(document).ajaxStart() and $(document).ajaxStop() to achieve that with jQuery.

http://api.jquery.com/ajaxStart/
http://api.jquery.com/ajaxStop/

This might be not exactly what your looking for, but it will help you get started: http://yensdesign.com/2008/11/how-to-create-a-stylish-loading-bar-as-gmail-in-javascript/

like image 2
Dan H Avatar answered Nov 13 '22 17:11

Dan H