function loadingjs(){ this.loadbookconfig(); //#1f2232,#dddddd this.body = $("body"); this.instance = $("
"); this.protitle = $("
"); this.steptitle = $("
"); this.loadingbg = $("
"); this.loadingitem = $("
"); this.instance.css({ "display" : "none", "position" : "absolute", "width" : "480px", "height" : "70px", "z-index" : 10000, "background-color" : "transparent" }); //this.addgradient(this.instance,"#b3b3b3","white"); /* "background-color" : "#1f2232", "border-radius" : "3px", "border":"1px solid #dcdcdc", "box-shadow" : "2px 2px 2px #333333", "-mz-box-shadow" : "2px 2px 2px #333333", "-ms-box-shadow" : "2px 2px 2px #333333", "-webkit-box-shadow" : "2px 2px 2px #333333", "-o-box-shadow" : "2px 2px 2px #333333" */ this.protitle.css({ "position" : "absolute", "left" : "10px", "top" : "10px", "width" : "460px", "text-align" : "center", "font-family" : "tahoma", "font-size" : "24px", "color" : "white", "word-break" : "keep-all", "white-space" : "nowrap", "overflow" : "hidden", "text-overflow" : "ellipsis" }); this.protitle.css({"text-shadow":"0 0 5px #8c97cb, 0 0 10px #8c97cb,0 0 15px #8c97cb"}); this.loadingbg.css({ "position" : "absolute", "width" : "280px", "height" : "10px", "left" : "10px", "top" : "35px", "background-color" : "#f3f4f9", "border-radius" : "2px", "display":"none" }); this.loadingitem.css({ "position" : "absolute", "width" : "0px", "height" : "10px", "left" : "0px", "top" : "0px", "background-color" : "#3fb5f2", "border-radius" : "2px", "display":"none" }); this.steptitle.css({ "position" : "absolute", "left" : "10px", "top" : "50px", "width" : "460px", "text-align" : "center", "font-family" : "tahoma", "font-size" : "12px", "color" : this.loadingcaptioncolor, "word-break" : "keep-all", "white-space" : "nowrap", "overflow" : "hidden", "text-overflow" : "ellipsis" }); //this.body.css({"background-color":this.backgroundcolor}); this.initbackground(); this.body.append(this.instance); this.instance.append(this.protitle); this.instance.append(this.loadingbg); this.instance.append(this.steptitle); this.loadingbg.append(this.loadingitem); this.init(); this.addloadingimage(); this.show(); } loadingjs.prototype = { loadbookconfig : function(){ this.loadingcaption, this.loadingcaptioncolor; try{ this.loadingcaption = bookconfig.loadingcaption; this.loadingcaptioncolor = bookconfig.loadingcaptioncolor; }catch(err){ this.loadingcaption = "loading"; this.loadingcaptioncolor = "#dddddd"; } if(this.loadingcaption == undefined) this.loadingcaption = "loading"; if(this.loadingcaptioncolor == undefined) this.loadingcaptioncolor = "#dddddd"; this.hasloadingpicture = false, this.loadingpicture = ""; try{ this.loadingpicture = bookconfig.loadingpicture; this.hasloadingpicture = (this.loadingpicture != ""); }catch(err){ this.hasloadingpicture = false; this.loadingpicture = ""; } }, init: function(){ var doc = $(document); var windowwidth = doc.width(), windowheight = math.max(doc.height(),400), progresswidth = 480, progressheight = 70; var progressleft = (windowwidth - progresswidth) / 2, progresstop = (windowheight - progressheight) / 2; this.instance.css({"left":progressleft + "px", "top":progresstop + "px"}); this.protitle.text($(document).attr("title")); this.steptitle.text(this.loadingcaption + "..."); var self = this,iwidth = 0,istep = 2; var oldcolor = this.colorsplit("#3fb5f2"); this.timer = window.setinterval(function(){ /*var paddr = math.floor((255 - oldcolor.r) * iwidth / 280), paddg = math.floor((255 - oldcolor.g) * iwidth / 280), paddb = math.floor((255 - oldcolor.b) * iwidth / 280); var newendcolor = self.coloradd("#3fb5f2",paddr,paddg,paddb); self.addgradient(self.loadingitem,"#3fb5f2",newendcolor); self.loadingitem.css({width : iwidth +"px"}); iwidth += istep; if(iwidth == 280) iwidth = 0; */ iwidth += istep; var icount = math.floor(iwidth / 50) % 3; switch(icount){ case 0:{self.steptitle.text(self.loadingcaption + ". ");break;} case 1:{self.steptitle.text(self.loadingcaption + ".. ");break;} case 2:{self.steptitle.text(self.loadingcaption + "...");break;} default:break; } },40); }, show: function(){ this.instance.css({"display":"block"}); }, addloadingimage : function(){ if(this.hasloadingpicture == false) return; this.loadingimg = $(""); var self = this; this.loadingimg.load(function(){ var doc = $(document), windowwidth = doc.width() , oimage = self.loadingimg[0]; var iimagewidth = oimage.naturalwidth, iimageheight = oimage.naturalheight; var iinstancetop; try{ iinstancetop = parseint(self.instance.css("top").replace("px","")); }catch(err){ iinstancetop = iimageheight; } var ileft = (windowwidth - iimagewidth) / 2, itop = iinstancetop - iimageheight; self.loadingimg.css({ "left" : ileft + "px", "top" : itop + "px", "width": iimagewidth + "px", "height": iimageheight + "px", "display":"block" }); }); this.loadingimg.attr("src", this.loadingpicture); this.body.append(this.loadingimg); }, destroy: function(){ window.clearinterval(this.timer); this.body.css({"background-color":""}); this.instance.empty(); this.instance.remove(); if(this.loadingimg) this.loadingimg.remove(); }, getbrowsertype : function(){ var isie11 = function(){ var useragent = navigator.useragent.tolowercase(); return (!$.browser.msie) && (useragent.indexof("trident") > 0); }; var browsertype = 0; if($.browser.msie || isie11()) { browsertype = 3; } else if($.browser.mozilla && !isie11()) { browsertype = 2; } else if($.browser.safari) { browsertype = 1; } else if($.browser.opera) { browsertype = 4; }; return browsertype; }, addgradient : function(item,begincolor, endcolor){ var browsertype = this.getbrowsertype(); var sleft = "",smsleft="0"; var horz = true; if(horz) {sleft = "left,";smsleft="1";} item.css({background: "linear-gradient("+ sleft + begincolor +", "+ endcolor +")"}); switch(browsertype){ case 1:{ item.css({background: "-webkit-linear-gradient("+ sleft + begincolor +", "+ endcolor +")"}); break; } case 2:{ item.css({background: "-moz-linear-gradient("+ sleft + begincolor +", "+ endcolor +")"}); break; } case 3:{ item.css({background: "-ms-linear-gradient("+ sleft + begincolor +", "+ endcolor +")"}); item.css("filter", "progid:dximagetransform.microsoft.gradient(gradienttype="+ smsleft +", endcolorstr=" + endcolor + ", startcolorstr=" + begincolor + ")"); break; } case 4:{ item.css({background: "-o-linear-gradient("+ sleft + begincolor +", "+ endcolor +")"}); break; } } }, colorsplit : function(color){ var colorrgb = {r : 0, g : 0, b : 0}; var red = "ff",green ="ff",blue = "ff"; if(color.length == 7){ red = color.substr(1, 2); green = color.substr(3, 2); blue = color.substr(5, 2); }else if(color.length == 4){ red = color.substr(1, 1); green = color.substr(2, 1); blue = color.substr(3, 1); red += red; green += green; blue += blue; } colorrgb.r = parseint(red,16); colorrgb.g = parseint(green,16); colorrgb.b = parseint(blue,16); return colorrgb; }, coloradd :function(color, addr, addg, addb){ var colorrgb = this.colorsplit(color); colorrgb.r = math.min(colorrgb.r + addr, 255).tostring(16); colorrgb.g = math.min(colorrgb.g + addg, 255).tostring(16); colorrgb.b = math.min(colorrgb.b + addb, 255).tostring(16); colorrgb.r = (colorrgb.r.length <= 1) ? '0' + colorrgb.r : colorrgb.r; colorrgb.g = (colorrgb.g.length <= 1) ? '0' + colorrgb.g : colorrgb.g; colorrgb.b = (colorrgb.b.length <= 1) ? '0' + colorrgb.b : colorrgb.b; return '#' + colorrgb.r + colorrgb.g + colorrgb.b; }, initstatus : function(){ window.clearinterval(this.timer); //this.steptitle.text("initialization..."); }, initbackground : function(){ this.body.css({"background-color":"#1f2232"}); /*var begincolor,endcolor,angle; try{ begincolor = bookconfig.bgbegincolor; endcolor = bookconfig.bgendcolor; angle = bookconfig.bgmrotation; }catch(err){ begincolor = "#1f2232"; endcolor = "#1f2232"; angle = 90; } if(begincolor == undefined) begincolor = "#1f2232"; if(endcolor == undefined) endcolor = "#1f2232"; if(angle == undefined) angle = 90; var anglestr = "0% 0%,100% 0%"; switch(angle) { case 45: anglestr = "0% 0%,100% 100%"; break; case 90: anglestr = "0% 0%,0% 100%"; break; case 135: anglestr = "100% 0%,0% 100%"; break; case 180: anglestr = "100% 0%,0% 0%"; case 0: anglestr = "0% 0%,100% 0%"; break; } var browsertype = this.getbrowsertype(); if(browsertype == 1) { this.body.css("background-image", "-webkit-gradient(linear," + anglestr + ",from(" + begincolor + "),to(" + endcolor + "))"); } else if(browsertype == 2) { this.body.css("background-image", "-moz-linear-gradient(left " + _angle + "deg," + begincolor + "," + endcolor + ")"); } else if(browsertype == 3) { this.body.css("filter", "progid:dximagetransform.microsoft.gradient(gradienttype=1, endcolorstr=" + endcolor + ", startcolorstr=" + begincolor + ");"); };*/ } }; var jsloadingbar = new loadingjs();