可以拖動立方體3D效果程式碼例項
本章節分享一段程式碼例項,它實現了可以拖動的立方體3D效果。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> * { padding: 0; margin: 0; } #div1 { width: 200px; height: 200px; background: #ccc; position: relative; margin: 100px auto; transform-style: preserve-3d; transform: perspective(800px) rotateX(0deg) rotateY(0deg); } #div1 div { position: absolute; left: 0; top: 0; width: 198px; height: 198px; border: 1px solid #000; line-height: 198px; text-align: center; background: green; opacity: 1; } #div1 .front { transform: translateZ(100px); } #div1 .back { transform: translateZ(-100px); } #div1 .left { transform: rotateY(-90deg) translateZ(100px); } #div1 .right { transform: rotateY(+90deg) translateZ(100px); } #div1 .top { transform: rotateX(90deg) translateZ(100px); } #div1 .bottom { transform: rotateX(-90deg) translateZ(100px); } </style> <script> window.onload = function () { var oDiv = document.getElementById('div1'); var x = 0; var lastX = 0; var speedX = 0; var y = 0; var lastY = 0; var speedY = 0; var timer = null; oDiv.onmousedown = function (ev) { clearInterval(timer) disX = ev.clientX - y; // 減去之前的位置 disY = ev.clientY - x; document.onmousemove = function (ev) { clearInterval(timer); y = ev.clientX - disX; //y軸旋轉 x = ev.clientY - disY; //x軸旋轉 speedY = y - lastY; //速度 lastY = y; speedX = x - lastX; lastX = x; oDiv.style.transform = 'perspective(800px) rotateX(' + -x + 'deg) rotateY(' + y + 'deg)'; }; document.onmouseup = function () { clearInterval(timer); document.onmousemove = null; document.onmouseup = null; timer = setInterval(function () { y += speedY; x += speedX; speedY *= 0.95; speedX *= 0.95; //摩擦 if (Math.abs(speedY) < 1) speedY = 0; if (Math.abs(speedX) < 1) speedX = 0; if (Math.abs(speedY) == 0 && speedX == 0) clearInterval(timer) oDiv.style.transform = 'perspective(800px) rotateX(' + -x + 'deg) rotateY(' + y + 'deg)'; }, 30) }; return false; }; } </script> </head> <body> <div id="div1"> <div class="front">前面</div> <div class="back">後面</div> <div class="left">左邊</div> <div class="right">右邊</div> <div class="top">上面</div> <div class="bottom">下面</div> </div> </body> </html>
相關文章
- three.js 3D立方體效果程式碼例項JS3D
- js滑鼠拖動立方體3D運動效果JS3D
- CSS3實現的立方體3D滾動效果程式碼例項CSSS33D
- jQuerydiv元素拖動效果程式碼例項jQuery
- 可以拖動的div塊程式碼例項
- css3立方體效果程式碼例項CSSS3
- 可以限定拖動範圍的彈出視窗效果程式碼例項
- 移動端div塊拖動效果程式碼例項
- js實現的div拖動效果例項程式碼JS
- 滑鼠按住拖動具有半透明效果的程式碼例項
- js物件導向封裝拖動效果程式碼例項JS物件封裝
- 按住滑鼠可以拖動箭頭旋轉程式碼例項
- 拖動滾動條實現div跟隨效果程式碼例項
- html5拖動上傳圖片效果程式碼例項HTML
- 3D旋轉效果程式碼例項3D
- 通過拖動將商品新增到購物車效果程式碼例項
- SVG拖動繪製矩形程式碼例項SVG
- css立體效果程式碼例項CSS
- canvas擺動效果程式碼例項Canvas
- javascript元素3D旋轉效果程式碼例項JavaScript3D
- 表格拖動滾動條標題固定程式碼例項
- 拖動滾動條載入資料程式碼例項
- 美化滾動條效果程式碼例項
- 點選標題可以展開效果程式碼例項
- js通過拖動調整元素位置程式碼例項JS
- 滑鼠拖動實現將div放入方格例項程式碼
- js元素上下移動效果程式碼例項JS
- js元素的震動效果程式碼例項JS
- css3晃動效果程式碼例項CSSS3
- js左右滑動選項卡效果程式碼例項JS
- 通過滑鼠拖動選取指定數字程式碼例項
- jQuery 動畫效果程式碼例項jQuery動畫
- css切角效果程式碼例項CSS
- css模糊效果程式碼例項CSS
- canvas火焰效果程式碼例項Canvas
- CSS3星系運動效果程式碼例項CSSS3
- CSS3立方體3D旋轉效果CSSS33D
- jquery 驗證碼效果程式碼例項jQuery