js鼠标拖动立方体3D运动效果

快乐打工仔 分类:实例代码

分享一段代码实例,它实现了鼠标拖动立方体进行3D运动效果。

代码实例如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.pipipi.net/" />
<title>犀牛前端部落</title>
<style>
#box {
  width: 200px;
  height: 200px;
  margin: 200px auto;
  background: #ccc;
  position: relative;
  transform: perspective(800px) rotateY(-60deg) rotateX(45deg);
  transform-style: preserve-3d;
}
#box div {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-size: cover;
  -webkit-box-shadow: 0 0 100px #5fbcff;
  opacity: 0.8;
}
.front {
  transform: translateZ(100px);
  background: #f00;
}
.back {
  transform: translateZ(-100px);
  background: #20ab4f;
}
.top {
  transform: translateY(-100px) rotateX(90deg);
  background: #ff7800;
}
.bottom {
  transform: translateY(100px) rotateX(-90deg);
  background: #00f6ff;
}
.left {
  transform: translateX(-100px) rotateY(90deg);
  background: #0084ff;
}
.right {
  transform: translateX(100px) rotateY(-90deg);
  background: #b400ff;
}
</style>
<script>
window.onload = function() {
  var oDiv = document.querySelector("#box");
  var y = -60;
  var x = 45;
  oDiv.onmousedown = function(ev) {
    var ev = ev || event;
    var disX = ev.clientX - y;
    var disY = ev.clientY - x;
    document.onmousemove = function(ev) {
      var ev = ev || event;
      y = ev.clientY - disY;
      x = ev.clientX - disX;
      oDiv.style.transform = 'perspective(800px) rotateX(' + x + 'deg) rotateY(' + y + 'deg)';
 
    }
    document.onmouseup = function() {
      document.onmouseup = null;
      document.onmousemove = null;
    }
  }
}
</script>
</head>
<body>
  <div id="box">
    <div class="front"></div>
    <div class="back"></div>
    <div class="top"></div>
    <div class="bottom"></div>
    <div class="left"></div>
    <div class="right"></div>
  </div>
</body>
</html>

上面的代码实现了我们的要求,更多内容参阅相关阅读。

相关阅读:

(1).transform可以参阅CSS3 transform一章节。

(2).perspective()可以参阅CSS3 perspective一章节。

(3).transform-style可以参阅CSS3 transform-style一章节。

(4).background-size可以参阅background-size一章节。

(5).box-shadow可以参阅CSS3 box-shadow一章节。

(6).document.querySelector()可以参阅document.querySelector()一章节。

(7).onmousedown事件可以参阅javascript mousedown事件一章节。

(8).onmousemove事件可以参阅javascript mousemove事件一章节。

(9).clientX可以参阅javascript event.clientX一章节。

js鼠标拖动立方体3D运动效果,这样的场景在实际项目中还是用的比较多的,关于js鼠标拖动立方体3D运动效果就介绍到这了。

js鼠标拖动立方体3D运动效果属于前端实例代码,有关更多实例代码大家可以查看

回复

我来回复
  • 暂无回复内容