HTML3D效果一直以來(lái)都是Web開(kāi)發(fā)中的熱門(mén)話題,有了它,網(wǎng)頁(yè)界面可以實(shí)現(xiàn)更多更豐富的3D立體效果,帶來(lái)更好的用戶體驗(yàn)。在這里,我們?yōu)榇蠹医榻B一些常用的HTML3D效果源代碼,幫助您更好地實(shí)現(xiàn)自己想要的3D效果。
首先,讓我們來(lái)看一下HTML3D最基本的代碼:
<!DOCTYPE html> <html> <head> <title>實(shí)現(xiàn)3D效果</title> <style> body { margin:0; padding:0; overflow:hidden; } canvas { width:100%; height:100%; } </style> </head> <body> <canvas id="canvas"></canvas> <script> var c = document.getElementById('canvas'); var ctx = c.getContext('3d'); // 在這里寫(xiě)下實(shí)現(xiàn)3D效果的代碼 </script> </body> </html>在這段代碼中,我們使用了HTML5的canvas元素,通過(guò)它可以實(shí)現(xiàn)3D效果。接下來(lái)是一些常用的實(shí)現(xiàn)3D效果的代碼。 第一種是實(shí)現(xiàn)立方體的代碼:
<!DOCTYPE html> <html> <head> <title>立方體</title> <style> body { margin:0; padding:0; overflow:hidden; } canvas { width:100%; height:100%; } </style> </head> <body> <canvas id="canvas"></canvas> <script> var c = document.getElementById('canvas'); var ctx = c.getContext('3d'); ctx.fillStyle = '#FF0000'; // 設(shè)置立方體的顏色 // 上面 ctx.fillRect(50, 50, 100, 50); // 右面 ctx.beginPath(); ctx.moveTo(150, 50); ctx.lineTo(200, 75); ctx.lineTo(200, 125); ctx.lineTo(150, 100); ctx.closePath(); ctx.fill(); // 左面 ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 75); ctx.lineTo(100, 125); ctx.lineTo(50, 100); ctx.closePath(); ctx.fill(); // 前面 ctx.beginPath(); ctx.moveTo(50, 100); ctx.lineTo(100, 125); ctx.lineTo(200, 125) ctx.lineTo(150, 100); ctx.closePath(); ctx.fill(); // 后面 ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 75); ctx.lineTo(200, 75) ctx.lineTo(150, 50); ctx.closePath(); ctx.fill(); </script> </body> </html>第二種是實(shí)現(xiàn)球體的代碼:
<!DOCTYPE html> <html> <head> <title>球體</title> <style> body { margin:0; padding:0; overflow:hidden; } canvas { width:100%; height:100%; } </style> </head> <body> <canvas id="canvas"></canvas> <script> var c = document.getElementById('canvas'); var ctx = c.getContext('3d'); ctx.fillStyle = '#FF0000'; // 設(shè)置球體顏色 function drawCircle(x, y, r) { var step = 2*Math.PI/100; ctx.beginPath(); ctx.moveTo(x + r, y); for (var i = 0; i< 100; i++) { ctx.lineTo(x + r*Math.cos(step*i), y + r*Math.sin(step*i)); } ctx.closePath(); ctx.fill(); } drawCircle(100, 100, 50); </script> </body> </html>以上是HTML3D效果的兩種常見(jiàn)實(shí)現(xiàn)方式,我們可以根據(jù)需要進(jìn)行相應(yīng)的修改,以實(shí)現(xiàn)更多更豐富的3D效果。