$(function () { var getTransform = function () { var style = "transform", anim = "animation", pers = "perspective"; var i, prefix = ['webkit', 'moz', 'ms', 'o'], htmlStyle = $("html")[0].style; if (!"transform" in htmlStyle) { for (i in prefix) { style = "-" + prefix[i] + "-transform"; if (style in htmlStyle) break; } } if (!"animation" in htmlStyle) { for (i in prefix) { anim = "-" + prefix[i] + "-animation"; if (anim in htmlStyle) break; } } if (!"perspective" in htmlStyle) { for (i in prefix) { pers = "-" + prefix[i] + "-perspective"; if (pers in htmlStyle) break; } } return [style, anim, pers] }; var C=createjs||{},T=TweenMax||{}; var bannerAnim = { w: 2400, h: 1300, p_w: 0, p_h: 0, stage: null, Canvas: null, lineData:[ {x:270,y:795,line:4,color:["rgba(190,196,200,1)","rgba(190,196,200,0)"],w:70,h:70,rotate:-15,circ:{x:10,y:10,r:50}}, {x:850,y:220,w:70,h:70,line:4,color:["rgba(190,196,200,1)","rgba(190,196,200,0)"],circ:{x:10,y:10,r:50}}, {x:930,y:445,w:230,h:110,line:4,color:["rgba(110,180,224,1)","rgba(110,180,224,0)"],circ:[{x:20,y:15,r:80},{x:125,y:15,r:80}]}, {x:1160,y:670,w:440,h:115,line:4,color:["rgba(240,119,111,1)","rgba(240,119,111,0)"],circ:[{x:60,y:15,r:80},{x:178,y:15,r:80},{x:308,y:15,r:80}]}, {x:1290,y:135,w:524,h:115,line:4,color:["rgba(190,196,200,1)","rgba(190,196,200,0)"],circ:[{x:40,y:15,r:80},{x:165,y:15,r:80},{x:295,y:15,r:80},{x:415,y:15,r:80}]}, {x:1345,y:510,w:75,h:75,line:4,color:["rgba(240,119,111,1)","rgba(240,119,111,0)"],circ:{x:10,y:10,r:55}}, {x:1455,y:340,w:210,h:210,line:4,color:["rgba(190,196,200,1)","rgba(190,196,200,0)"],circ:[{x:20,y:20,r:75},{x:120,y:20,r:75},{x:20,y:110,r:75},{x:120,y:110,r:75}]}, {x:1695,y:300,w:120,h:345,line:4,color:["rgba(240,119,111,1)","rgba(240,119,111,0)"],circ:[{x:25,y:15,r:75},{x:35,y:25,r:55},{x:25,y:125,r:75},{x:35,y:135,r:55},{x:25,y:245,r:75},{x:35,y:255,r:55}]}, {x:1730,y:745,w:75,h:75,line:4,color:["rgba(240,119,111,1)","rgba(240,119,111,0)"],circ:{x:10,y:10,r:55}}, {x:1910,y:470,w:115,h:450,line:4,color:["rgba(110,180,224,1)","rgba(110,180,224,0)"],circ:[{x:25,y:20,r:75},{x:35,y:30,r:55},{x:25,y:130,r:75},{x:35,y:140,r:55},{x:25,y:240,r:75},{x:35,y:250,r:55},{x:25,y:340,r:75},{x:35,y:350,r:55}]}, {x:1920,y:260,w:75,h:75,line:4,color:["rgba(240,119,111,1)","rgba(240,119,111,0)"],circ:{x:10,y:10,r:55}}, {x:2070,y:250,w:230,h:455,line:4,color:["rgba(110,180,224,1)","rgba(110,180,224,0)"],circ:[{x:25,y:30,r:75},{x:35,y:40,r:55},{x:25,y:185,r:75},{x:35,y:195,r:55},{x:25,y:340,r:75},{x:35,y:350,r:55}, {x:140,y:30,r:75},{x:150,y:40,r:55},{x:140,y:185,r:75},{x:150,y:195,r:55},{x:140,y:340,r:75},{x:150,y:350,r:55}]}, ], init: function () { var self = this; self.box = $(".banner-box"); self.animBox = $("#bannerAnim"); self.imgBox = $(".banner-img"); self.txtBox=$(".banner-entry"); //创建canvas; self.Canvas = $("").appendTo(self.animBox); //document.createElement('canvas'); self.Canvas[0].width = self.w; self.Canvas[0].height = self.h; self.stage = new C.Stage('myC'); C.Ticker.setFPS(30); C.Ticker.useRAF = true; C.Ticker.addEventListener("tick", self.stage); C.Touch.enable(self.stage, true); //单指触摸 self.bannerResize(); $(window).bind("resize", self.bannerResize); self.start() }, bannerResize: function () { var self = bannerAnim; self.p_w = self.box.parent().width(); self.p_h = self.box.parent().height(); //获取比例; var w_s = self.p_w / self.w+0.08, h_s = self.p_h / self.h+0.08; var scale=self.scale = w_s > h_s ? w_s : h_s; var tra = getTransform()[0]; self.animBox.attr("style", ""); self.imgBox.attr("style", ""); var boxSty = { "width": self.w, "height": self.h }; boxSty[tra] = "scale(" + scale + "," + scale + ")"; self.animBox.css(boxSty); var imgSty = {}; imgSty[tra] = "scale(" + scale + "," + scale + ")"; self.imgBox.css(imgSty); if (w_s > h_s) { self.animBox.css({"margin-top": (self.p_h - self.h * w_s) / 2,"margin-left":(self.p_w - self.w * w_s) / 2}); self.imgBox.css({"margin-top": (self.p_h - self.h * w_s) / 2-(1-scale)*self.h/2,"margin-left":(self.p_w - self.w * w_s) / 2-(1-scale)*self.w/2}); } else { self.animBox.css({"margin-left": (self.p_w - self.w * h_s) / 2,"margin-top": (self.p_h - self.h * h_s) / 2}); self.imgBox.css({"margin-left": (self.p_w - self.w * h_s) / 2-(1-scale)*self.w/2,"margin-top": (self.p_h - self.h * h_s) / 2-(1-scale)*self.h/2}); } }, start: function () { var self = this; //self.addBg(); //setTimeout(self.addLine,500); self.addLine() }, glowLine:function (line,w,h,color){ w=w||0,h=h||0; var r=w/2||h/2; var glBox=new C.Container(); var Line=new C.Shape(); var glow=new C.Shape(); glBox.addChild(glow); glBox.addChild(Line); glow.alpha=.3; var blurFilter = new C.BlurFilter(3, 3, 10); glow.filters = [blurFilter]; var bounds = blurFilter.getBounds(); if(w){ Line.graphics.ss(line,"round").rs(color,[0,1],r,h,0,r,h,r).mt(0,0).lt(w,h); glow.graphics.ss(line+4,"round").rs(color,[0,1],r,h,0,r,h,r).mt(0,0).lt(w,h); glow.cache(bounds.x, bounds.y-2, w+bounds.width, line+bounds.height); }else{ Line.graphics.ss(line,"round").rs(color,[0,1],w,r,0,w,r,r).mt(0,0).lt(w,h); glow.graphics.ss(line+4,"round").rs(color,[0,1],w,r,0,w,r,r).mt(0,0).lt(w,h); glow.cache(bounds.x-2, bounds.y, line+bounds.width, h+bounds.height); } return glBox; }, addMouseAnim:function (){ var self=this,img_x=self.imgBox; $("body").bind("mousemove",function (e){ var _x=-(e.pageX-$(this).width()/2)/40;//,_y= -(e.pageY-$(this).height()/2)/35; if(_x>self.w*.04){ _x=self.w*.04 } T.set(self.imgBox,{scale:self.scale,transformPerspective:400}); T.killTweensOf(self.imgBox,true); var tobj={}; if(navigator.userAgent.indexOf('Firefox') >= 0){ tobj.x=_x }else{ tobj.x=_x; tobj.rotationY=_x/60; } T.to(self.imgBox,.5,tobj); }) }, endTween:function (){ var self=bannerAnim; T.to(self.animBox,.5,{alpha:0,onComplete:function (){ self.animBox.remove(); self.addMouseAnim() }}); self.imgBox.removeClass("fn-alpha-out") self.imgBox.css("opacity",1); }, textTween:function (){ var self=this; self.txtBox.removeClass("fn-hide"); for(var i=0;i0){ for(var j=0;j=self.lineData.length){ setTimeout(self.endTween,500) } } function tween(line,obj,i,j,lineBox,arr){ var t=obj; t.alpha=0; t.scale=2; t.ease=Power1.easeOut; T.to(line,.5,t); addLine(i,j,lineBox); arr.push(j); a_lineBox[i]=arr; if(a_lineBox[i].length>=4){ addCirc(i,lineBox) } } for(var i=0;i