рджрд┐рд▓рдЪрд╕реНрдк рдкреНрд░рдЧрддрд┐ рдмрд╛рд░

рдЗрд╕ рд╕рдореАрдХреНрд╖рд╛ рдореЗрдВ, рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк jQuery UI рдкреНрд▓рдЧрдЗрди рдХреЗ Progressbar рдШрдЯрдХ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рд╣рд▓ рдХрд░реЗрдВрдЧреЗ:

рдЖрдЗрдП рд╣рдо "рд░рдирд┐рдВрдЧ" рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдмрд╛рд░ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдорд╛рдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдкреНрд░рд╛рд░рдВрдн рд╕рдордп, рдЪрд░рдг рдФрд░ рдЕрд╡рдзрд┐ рд╕реЗрдЯ рдХрд░рдирд╛; рд╕рдорд╛рдкреНрдд рд╕рдордп, рдХрджрдо рдФрд░ рдЕрд╡рдзрд┐; рд╕рдордп рд╢реБрд░реВ рдХрд░реЗрдВ, рд╕рдордп рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдХрджрдо рдмрдврд╝рд╛рдПрдВред рдореИрдВ рдмрд╛рдж рдореЗрдВ рдмрд╕ рдЧрдпрд╛, рдЕрд░реНрдерд╛рддреНред рд╣рдорд╛рд░реА рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╛рд░рдВрдн рд╕рдордп, рд╕рдорд╛рдкрди рд╕рдордп рдФрд░ рдЪрд░рдг рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ ред

рд╣рдо рджрд┐рдирд╛рдВрдХ рдСрдмреНрдЬреЗрдХреНрдЯ (рд╡рд░реНрд╖, рдорд╛рд╣, рддрд┐рдерд┐ [, рдШрдВрдЯреЗ, рдорд┐рдирдЯ, рд╕реЗрдХрдВрдб, рдПрдордПрд╕]) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдФрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВрдЧреЗред рдЪрд░рдг рдХреЛ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЪрд░ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП jQuery рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдЗрд╕рдХреЗ jQuery рдпреВрдЖрдИ рдкреНрд▓рдЧрдЗрди, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЙрдирдХреА рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред
<script type="text/javascript" src="jquery-1.6.1.min.js"></script> <script type="text/javascript" src="jquery-ui-1.8.14.custom.min.js"></script> <link href="jquery-ui-1.8.14.custom.css" rel="stylesheet" type="text/css"/> 


рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдЖрдо рддреМрд░ рдкрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдпрджрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ - рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдкреВрдЫреЗрдВ ;-)

рдЕрдЧрд▓рд╛, рд╣рдо div рддрддреНрд╡ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕реНрдХреНрд░реЙрд▓ рдмрд╛рд░ рд╣реЛрдЧрд╛:
 <div id="progressbar"></div> 


рдЕрдЧрд▓рд╛, рдПрдХ jQuery рдкреНрд▓рдЧрдЗрди рд▓рд┐рдЦреЗрдВ

 jQuery.fn.progress = function (options){ var defaults = { start: new Date(), finish: new Date().setTime(new Date().getTime()+60000), interval: 123 } var opts = jQuery.extend(defaults, options), t = this; return this.each(function(){ var allMs = opts.finish - opts.start , plus = opts.interval/allMs*100 , devInterval; $(t) .progressbar() .before('<div id="progresspercent"></div>') .after('<div id="progresstext"></div>'); devInterval = setInterval(function(){ var ms = opts.finish - new Date() , wasMs = new Date() - opts.start , days = parseInt(ms/86400000) , hours = parseInt((ms - (days*86400000))/3600000) , min = parseInt((ms - (days*86400000) - (hours*3600000))/60000) , sec = parseInt((ms - (days*86400000) - (min*60000)- (hours*3600000))/1000) , msec = parseInt(ms - (days*86400000) - (sec*1000) - (min*60000)- (hours*3600000)) , percent = wasMs/allMs*100; if(percent >= 100){ percent = 100; } var vHours = hours > 9 ? hours : "0" + hours, vMin = min > 9 ? min : "0" + min, vSec = sec > 9 ? sec : "0" + sec, vMsec = msec >= 100 ? msec : "0" + msec, vMsec = msec > 10 ? vMsec : "0" + vMsec; $("#progresspercent").html("<b>"+percent.toFixed(4)+"%</b>"); $("#progresstext").html("   <b>~ "+days+" . "+vHours+":"+vMin+":"+vSec+"."+vMsec+" </b>"); $(t).children(".ui-progressbar-value").css("width", percent+"%"); if(percent >= 100){ clearInterval(devInterval); $("#progresstext").html(" "); } } ,opts.interval); }); } 


рдЕрдВрдд рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░реЗрд╕рдмрд╛рд░ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ рдХреЛ рдмрд╛рдВрдзреЗрдВ:

 $("#progressbar").progress(); 


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкреНрд░рд╛рд░рдВрдн рд╕рдордп ( рдкреНрд░рд╛рд░рдВрдн ) рд╡рд░реНрддрдорд╛рди рд╕рдордп рд╣реИ, рд╕рдорд╛рдкреНрдд рд╕рдордп ( рдЦрддреНрдо ) 60 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рд╣реИ, рдЕрдВрддрд░рд╛рд▓ 123 рдПрдордПрд╕ рд╣реИред

рдЖрдк рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рдкреИрд░рд╛рдореАрдЯрд░ (рдпрд╛ рдЙрди рд╕рднреА) рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:
  $("#progressbar").progress({start: new Date(2000, 0, 1), finish: new Date(2012, 0, 1), interval: 100}); 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╢реБрд░реБрдЖрдд 1 рдЬрдирд╡рд░реА, 2000 рд╣реИ , рдЦрддреНрдо 1 рдЬрдирд╡рд░реА 2012 рд╣реИ , рдЕрдВрддрд░рд╛рд▓ 100 рдПрдордПрд╕ рд╣реИ ред

рд╕реНрдЯрд╛рдЗрд▓ рд╢реАрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ , рдзрдиреНрдпрд╡рд╛рдж рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд╣рдорд╛рд░реА рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдХреЛ рдПрдХ рд╕рдорд╛рдкреНрдд рд░реВрдк рдорд┐рд▓реЗрдЧрд╛, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рдХреНрд░рд┐рдп рдХреНрд╖реЗрддреНрд░ рдХреЛ рдПрдХ рдПрдирд┐рдореЗрдЯреЗрдб рдЫрд╡рд┐ рдХреЗ рд╕рд╛рде рд╕реЗрдЯ рдХрд░рдирд╛:

 <style> #progressbar .ui-progressbar-value { background-image: url(images/pbar-ani.gif);display: block!important} #progresspercent {position:relative;left:230px;top:20px;} .ui-progressbar {height:20px;width:550px;text-align:center} </style> 


рдЕрдм рд╣рдорд╛рд░реА рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдЕрдкрдирд╛ рдЕрдВрддрд┐рдо рд░реВрдк рд▓реЗрдЧреА:


рдФрд░ рдпрд╣рд╛рдБ рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдХреЗ рд╕рд╛рде рдкреВрд░реЗ рдкреГрд╖реНрда рдХрд╛ рдХреЛрдб рд╣реИ

 <html> <head> <script type="text/javascript" src="jquery-1.6.1.min.js"></script> <script type="text/javascript" src="jquery-ui-1.8.14.custom.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ jQuery.fn.progress = function (options){ var defaults = { start: new Date(), finish: new Date().setTime(new Date().getTime()+60000000000), interval: 123 } var opts = jQuery.extend(defaults, options), t = this; return this.each(function(){ var allMs = opts.finish - opts.start , plus = opts.interval/allMs*100 , devInterval; $(t) .progressbar() .before('<div id="progresspercent"></div>') .after('<div id="progresstext"></div>'); devInterval = setInterval(function(){ var ms = opts.finish - new Date() , wasMs = new Date() - opts.start , days = parseInt(ms/86400000) , hours = parseInt((ms - (days*86400000))/3600000) , min = parseInt((ms - (days*86400000) - (hours*3600000))/60000) , sec = parseInt((ms - (days*86400000) - (min*60000)- (hours*3600000))/1000) , msec = parseInt(ms - (days*86400000) - (sec*1000) - (min*60000)- (hours*3600000)) , percent = wasMs/allMs*100; if(percent >= 100){ percent = 100; } var vHours = hours > 9 ? hours : "0" + hours, vMin = min > 9 ? min : "0" + min, vSec = sec > 9 ? sec : "0" + sec, vMsec = msec >= 100 ? msec : "0" + msec, vMsec = msec > 10 ? vMsec : "0" + vMsec; $("#progresspercent").html("<b>"+percent.toFixed(4)+"%</b>"); $("#progresstext").html("   <b>~ "+days+" . "+vHours+":"+vMin+":"+vSec+"."+vMsec+" </b>"); $(t).children(".ui-progressbar-value").css("width", percent+"%"); if(percent >= 100){ clearInterval(devInterval); $("#progresstext").html(" "); } } ,opts.interval); }); } $("#progressbar").progress(); }); $('head').append('<link rel="stylesheet" type="text/css" href="jquery-ui-1.8.14.custom.css" />'); </script> <style> #progressbar .ui-progressbar-value { background-image: url(images/pbar-ani.gif);display:block!important} #progresspercent {position:relative;left:240px;top:20px;} .ui-progressbar {height:20px!important;width:550px!important;text-align:center} body{overflow:hidden;} </style> <meta http-equiv="Content-Type" content="text/html; charset=cp1251"/> </head> <body> <div id="progressbar"></div> <br><br> <a href="progressbar.zip"> </a> </body> </html> 


рдпрд╣ рдПрдХреНрд╢рди рдореЗрдВ рдХреИрд╕реЗ рджрд┐рдЦрддрд╛ рд╣реИ

рдпрд╣рд╛рдБ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ

Source: https://habr.com/ru/post/In124401/


All Articles