亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

多視角3D可旋轉的HTML5 Logo動畫

2020-03-24 19:24:52
字體:
來源:轉載
供稿:網友
這是一款基于HTML5和CSS3的3D動畫特效,與之前的3D特效不同的是,這款是完全用HTML5特性實現的,而并非用多張圖片疊加起來。這款3D動畫還有一個特點是可以無限的旋轉,從而可以從多個視角來觀察HTML5 Logo。在線演示 源碼下載HTML代碼XML/HTML Code復制內容到剪貼板
//bindtowindowonloadhandler window.addEventListener('load',onloadHandler,false); /** *Windowonloadhandler */ functiononloadHandler() { varcanvas=document.getElementById('canvas'); canvas.width=window.innerWidth; canvas.height=window.innerHeight; vark3dmain=newK3D.Controller(canvas,true); //generate3Dobjects varobj1=newK3D.K3DObject(); with(obj1) { drawmode= solid ; shademode= lightsource ; sortmode= unsorted ; addphi=-0.5; abouty=-90; perslevel=1000; init( [{x:-80,y:180,z:0},{x:0,y:180,z:-80},{x:0,y:0,z:-80},{x:-80,y:20,z:0},{x:-50,y:150,z:-30},{x:0,y:150,z:-80},{x:0,y:130,z:-80},{x:-30,y:130,z:-50},{x:-28,y:110,z:-52},{x:0,y:110,z:-80},{x:0,y:90,z:-80},{x:-45,y:90,z:-35},{x:-44,y:80,z:-36},{x:-25,y:80,z:-55},{x:-22,y:66,z:-58},{x:0,y:60,z:-80},{x:0,y:40,z:-80},{x:-40,y:50,z:-40}], [], [{color:[227,76,38],vertices:[0,1,2,3,0]},{color:[235,235,235],vertices:[4,5,6,7,8,9,10,11,4]},{color:[235,235,235],vertices:[12,13,14,15,16,17,12]}] ); } k3dmain.addK3DObject(obj1); varobj2=newK3D.K3DObject(); with(obj2) { drawmode= solid ; shademode= lightsource ; sortmode= unsorted ; addphi=-0.5; abouty=-90; perslevel=1000; init( [{x:0,y:180,z:-80},{x:80,y:180,z:0},{x:80,y:20,z:0},{x:0,y:0,z:-80},{x:0,y:165,z:-80},{x:68,y:165,z:-12},{x:55,y:35,z:-25},{x:0,y:20,z:-80},{x:0,y:150,z:-80},{x:50,y:150,z:-30},{x:47,y:130,z:-33},{x:0,y:130,z:-80},{x:0,y:110,z:-80},{x:45,y:110,z:-35},{x:40,y:50,z:-40},{x:0,y:40,z:-80},{x:0,y:60,z:-80},{x:20,y:66,z:-60},{x:23,y:90,z:-57},{x:0,y:90,z:-80}], [], [{color:[227,76,38],vertices:[0,1,2,3,0]},{color:[240,101,41],vertices:[4,5,6,7,4]},{color:[235,235,235],vertices:[8,9,10,11,8]},{color:[235,235,235],vertices:[12,13,14,15,16,17,18,19,12]}] ); } k3dmain.addK3DObject(obj2); varobj3=newK3D.K3DObject(); with(obj3) { drawmode= solid ; shademode= lightsource ; sortmode= unsorted ; addphi=-0.5; abouty=-90; perslevel=1000; init( [{x:80,y:180,z:0},{x:0,y:180,z:80},{x:0,y:0,z:80},{x:80,y:20,z:0},{x:50,y:150,z:30},{x:0,y:150,z:80},{x:0,y:130,z:80},{x:30,y:130,z:50},{x:28,y:110,z:52},{x:0,y:110,z:80},{x:0,y:90,z:80},{x:45,y:90,z:35},{x:44,y:80,z:36},{x:25,y:80,z:55},{x:22,y:66,z:58},{x:0,y:60,z:80},{x:0,y:40,z:80},{x:40,y:50,z:40}], [], [{color:[227,76,38],vertices:[0,1,2,3,0]},{color:[235,235,235],vertices:[4,5,6,7,8,9,10,11,4]},{color:[235,235,235],vertices:[12,13,14,15,16,17,12]}] ); } k3dmain.addK3DObject(obj3); varobj4=newK3D.K3DObject(); with(obj4) { drawmode= solid ; shademode= lightsource ; sortmode= unsorted ; addphi=-0.5; abouty=-90; perslevel=1000; init( [{x:0,y:180,z:80},{x:-80,y:180,z:0},{x:-80,y:20,z:0},{x:0,y:0,z:80},{x:0,y:165,z:80},{x:-68,y:165,z:12},{x:-55,y:35,z:25},{x:0,y:20,z:80},{x:0,y:150,z:80},{x:-50,y:150,z:30},{x:-47,y:130,z:33},{x:0,y:130,z:80},{x:0,y:110,z:80},{x:-45,y:110,z:35},{x:-40,y:50,z:40},{x:0,y:40,z:80},{x:0,y:60,z:80},{x:-20,y:66,z:60},{x:-23,y:90,z:57},{x:0,y:90,z:80}], [], [{color:[227,76,38],vertices:[0,1,2,3,0]},{color:[240,101,41],vertices:[4,5,6,7,4]},{color:[235,235,235],vertices:[8,9,10,11,8]},{color:[235,235,235],vertices:[12,13,14,15,16,17,18,19,12]}] ); } k3dmain.addK3DObject(obj4); varobjBase=newK3D.K3DObject(); with(objBase) { drawmode= solid ; shademode= lightsource ; sortmode= unsorted ; addphi=-0.5; abouty=-90; perslevel=1000; init( [{x:0,y:0,z:-80},{x:-80,y:20,z:0},{x:0,y:0,z:80},{x:80,y:20,z:0}], [], [{color:[227,76,38],vertices:[0,2,1,0]},{color:[227,76,38],vertices:[0,3,2,0]}] ); } k3dmain.addK3DObject(objBase); varobjHtml=newK3D.K3DObject(); with(objHtml) { drawmode= solid ; shademode= lightsource ; //sortmode= unsorted color=[64,64,64]; doublesided=true; addphi=-0.5; abouty=100; scale=0.75; perslevel=1000; init( [{x:-80,y:40,z:0},{x:-70,y:40,z:0},{x:-70,y:30,z:0},{x:-60,y:30,z:0},{x:-60,y:40,z:0},{x:-50,y:40,z:0},{x:-50,y:10,z:0},{x:-60,y:10,z:0},{x:-60,y:20,z:0},{x:-70,y:20,z:0},{x:-70,y:10,z:0},{x:-80,y:10,z:0},{x:-40,y:40,z:0},{x:-10,y:40,z:0},{x:-10,y:30,z:0},{x:-20,y:30,z:0},{x:-20,y:10,z:0},{x:-30,y:10,z:0},{x:-30,y:30,z:0},{x:-40,y:30,z:0},{x:0,y:40,z:0},{x:10,y:40,z:0},{x:20,y:30,z:0},{x:30,y:40,z:0},{x:40,y:40,z:0},{x:40,y:10,z:0},{x:30,y:10,z:0},{x:30,y:30,z:0},{x:20,y:20,z:0},{x:10,y:30,z:0},{x:10,y:10,z:0},{x:0,y:10,z:0},{x:50,y:40,z:0},{x:60,y:40,z:0},{x:60,y:20,z:0},{x:80,y:20,z:0},{x:80,y:10,z:0},{x:50,y:10,z:0}], [], [{vertices:[0,1,2,3,4,5,6,7,8,9,10,11,0]},{vertices:[12,13,14,15,16,17,18,19,12]},{vertices:[20,21,22,23,24,25,26,27,28,29,30,31,20]},{vertices:[32,33,34,35,36,37,32]}] ); } k3dmain.addK3DObject(objHtml); //addrenderloopcallback varctx=canvas.getContext('2d'); varrotationOffset=0; varlen=(canvas.height canvas.width?canvas.height:canvas.width)*0.7; k3dmain.clearBackground=false; k3dmain.callback=function() { //manuallyclearbg-aswewanttorendersomeextragoodies ctx.clearRect(0,0,canvas.width,canvas.height); //drawbgeffectbeforeK3Ddoesits3Drendering ctx.save(); ctx.translate(canvas.width/2,canvas.height/2); ctx.rotate(rotationOffset); //firstfillpass-outerrays varRAYCOUNT=24; ctx.fillStyle= #eee ; ctx.beginPath(); for(vari=0;i RAYCOUNT;i++) { //rotatecontext ctx.rotate(TWOPI/RAYCOUNT); ctx.moveTo(0,0); ctx.lineTo(-20,len); ctx.lineTo(20,len); } ctx.closePath(); ctx.fill(); //secondfillpass-innerrays ctx.fillStyle= #fff ; ctx.beginPath(); for(vari=0;i RAYCOUNT;i++) { //rotatecontext ctx.rotate(TWOPI/RAYCOUNT); ctx.moveTo(0,0); ctx.lineTo(-15,len); ctx.lineTo(15,len); } ctx.closePath(); ctx.fill(); ctx.restore(); rotationOffset+=0.005; //applyuserinteractiontorotation for(vari=0,objs=k3dmain.objects;i objs.length;i++) { objs[i].ophi+=targetRotationX; } if(targetRotationX -0.5)targetRotationX-=0.05; elseif(targetRotationX -0.55)targetRotationX+=0.05; if(targetRotationX -0.55 targetRotationX -0.5)targetRotationX=-0.5; }; //startdemoloop k3dmain.paused=true; setInterval(function(){k3dmain.tick()},1000/60); } //niftydrag/toucheventcapturecodeborrowedfromMrDoobhttp://mrdoob.com/ vartargetRotationX=0; vartargetRotationOnMouseDownX=0; varmouseX=0; varmouseXOnMouseDown=0; vartargetRotationY=0; vartargetRotationOnMouseDownY=0; varmouseY=0; varmouseYOnMouseDown=0; varwindowHalfX=window.innerWidth/2; varwindowHalfY=window.innerHeight/2; document.addEventListener('mousedown',onDocumentMouseDown,false); document.addEventListener('touchstart',onDocumentTouchStart,false); document.addEventListener('touchmove',onDocumentTouchMove,false); functiononDocumentMouseDown(event){ event.preventDefault(); document.addEventListener('mousemove',onDocumentMouseMove,false); document.addEventListener('mouseup',onDocumentMouseUp,false); document.addEventListener('mouseout',onDocumentMouseOut,false); mouseXOnMouseDown=event.clientX-windowHalfX; targetRotationOnMouseDownX=targetRotationX; mouseYOnMouseDown=event.clientY-windowHalfY; targetRotationOnMouseDownY=targetRotationY; } functiononDocumentMouseMove(event) { mouseX=event.clientX-windowHalfX; targetRotationX=targetRotationOnMouseDownX+(mouseX-mouseXOnMouseDown)*0.02; mouseY=event.clientY-windowHalfY; targetRotationY=targetRotationOnMouseDownY+(mouseY-mouseYOnMouseDown)*0.02; } functiononDocumentMouseUp(event) { document.removeEventListener('mousemove',onDocumentMouseMove,false); document.removeEventListener('mouseup',onDocumentMouseUp,false); document.removeEventListener('mouseout',onDocumentMouseOut,false); } functiononDocumentMouseOut(event) { document.removeEventListener('mousemove',onDocumentMouseMove,false); document.removeEventListener('mouseup',onDocumentMouseUp,false); document.removeEventListener('mouseout',onDocumentMouseOut,false); } functiononDocumentTouchStart(event) { if(event.touches.length==1) { event.preventDefault(); mouseXOnMouseDown=event.touches[0].pageX-windowHalfX; targetRotationOnMouseDownX=targetRotationX; mouseYOnMouseDown=event.touches[0].pageY-windowHalfY; targetRotationOnMouseDownY=targetRotationY; } } functiononDocumentTouchMove(event) { if(event.touches.length==1) { event.preventDefault(); mouseX=event.touches[0].pageX-windowHalfX; targetRotationX=targetRotationOnMouseDownX+(mouseX-mouseXOnMouseDown)*0.05; mouseY=event.touches[0].pageY-windowHalfY; targetRotationY=targetRotationOnMouseDownY+(mouseX-mouseYOnMouseDown)*0.05; } }html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美美女操人视频| 久久福利视频网| 国产亚洲欧美aaaa| 欧美日韩激情小视频| 亚洲天堂影视av| 欧美日韩另类视频| 久久av.com| 亚洲国产精品人人爽夜夜爽| 国产精品久久久久99| 国产成人一区二区在线| 亚洲激情在线观看视频免费| 最新国产精品拍自在线播放| 色樱桃影院亚洲精品影院| 国产成人精品视| 欧美高清视频在线观看| 国产精品视频网址| 中文字幕亚洲专区| 久久精品电影一区二区| 美女国内精品自产拍在线播放| 日韩免费在线免费观看| 91精品国产91久久久久| 丁香五六月婷婷久久激情| 精品国产乱码久久久久久虫虫漫画| 亚洲欧洲在线观看| 国产一区二区久久精品| 亚洲第一区中文99精品| 成人福利视频在线观看| 亚洲国产成人久久综合| 97色在线观看| 国产精品久久色| 亚洲人a成www在线影院| 中文字幕日韩精品在线| 久久精品一本久久99精品| 久久久亚洲精品视频| 国外日韩电影在线观看| 国产亚洲精品一区二区| 成人免费网视频| 国产精品电影观看| 国产精品久久久一区| 久久国产天堂福利天堂| 亚洲精品美女久久| 亚洲三级av在线| 亚洲精品欧美一区二区三区| 日产精品久久久一区二区福利| 精品一区二区三区四区| 亚洲成人网在线观看| 91视频免费网站| 乱亲女秽乱长久久久| 国产精品久久久久久亚洲影视| 日韩少妇与小伙激情| 欧美与黑人午夜性猛交久久久| 国产精品嫩草影院久久久| 国产精品xxxxx| 欧美亚洲激情视频| 亚洲人成电影在线播放| 久久成人亚洲精品| 亚洲成人黄色在线观看| 亚洲视频在线免费观看| 日韩精品在线观| 欧美性色19p| 最近2019中文免费高清视频观看www99| 久久久久久美女| 久久久久久久久国产精品| 国产精品久久久久久久久久ktv| 国产亚洲精品美女| 久久av中文字幕| 国产精品久久久久久av福利软件| 精品亚洲一区二区三区在线观看| 中文字幕亚洲欧美在线| 26uuu亚洲国产精品| 成人免费在线视频网址| 欧美性猛交xxxx富婆弯腰| 亚洲精品美女在线观看| 成人精品一区二区三区电影免费| 精品一区二区亚洲| 成人动漫网站在线观看| 91亚洲精品视频| 97精品一区二区视频在线观看| 九色91av视频| 国产日韩精品综合网站| 精品一区二区三区四区在线| 91九色国产在线| 久久精品久久久久久国产 免费| 欧美成人黑人xx视频免费观看| 亚洲福利影片在线| 亚洲综合视频1区| 亚洲一区二区三区四区在线播放| 国产成人av网| 欧美日韩视频在线| 国产精品一区二区久久久久| 久久久国产精品x99av| 欧美与黑人午夜性猛交久久久| 国产一区深夜福利| 亚洲人成电影在线观看天堂色| 91在线观看欧美日韩| 美女精品久久久| 亚洲欧洲中文天堂| 日本中文字幕不卡免费| 亚洲电影av在线| 欧美老女人xx| 亚洲最大的成人网| 在线一区二区日韩| 国产成人福利夜色影视| 久久久91精品| 久久久久久国产精品三级玉女聊斋| 欧美性xxxx极品hd满灌| 日韩成人在线视频网站| 亚洲精品v天堂中文字幕| 久久成人免费视频| 欧美国产日韩一区二区三区| 91精品国产沙发| 久久久久久久久久婷婷| 国模精品一区二区三区色天香| 亚洲激情 国产| 亚洲国产成人精品久久久国产成人一区| 亚洲毛片在线观看.| 国产专区精品视频| 精品视频在线播放| 国产亚洲欧美一区| 欧美—级a级欧美特级ar全黄| 欧美成人免费全部观看天天性色| 日韩免费观看高清| 精品久久久久久久久久ntr影视| 国产欧美日韩91| 亚洲视频视频在线| 亚洲精品国偷自产在线99热| 日韩欧美在线视频观看| 日本免费久久高清视频| 久久久www成人免费精品| 国产69精品久久久| 欧美猛男性生活免费| 欧美大片免费观看在线观看网站推荐| 奇门遁甲1982国语版免费观看高清| 国产91精品最新在线播放| 国产美女精品免费电影| 欧美在线视频播放| 美女黄色丝袜一区| 日韩av成人在线观看| 91精品视频在线| 日韩中文字幕不卡视频| 成人精品一区二区三区电影黑人| 激情成人中文字幕| 亚洲综合视频1区| 性欧美在线看片a免费观看| 亚洲欧美一区二区三区四区| 欧美日韩一区二区三区| 91精品在线看| 精品国产精品自拍| 亚洲影影院av| 国产精品69久久| 欧美午夜电影在线| 92看片淫黄大片欧美看国产片| 91久热免费在线视频| 国产精品r级在线| 91高清视频免费| 亚洲bt天天射| 国产日韩精品在线| 91在线免费看网站| 午夜精品福利在线观看| 欧美自拍大量在线观看| 国产精品美女免费看| 久久久噜噜噜久久中文字免| 亚洲专区在线视频| 欧美亚洲国产视频小说|