jquery中盒子3d旋转完整代码
时间: 2024-03-05 11:44:37 浏览: 55
以下是一个基于jQuery和Vue的3D盒子旋转代码的示例:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>3D盒子旋转</title>
<style>
.container {
position: relative;
width: 400px;
height: 400px;
margin: 0 auto;
perspective: 1000px;
}
.box {
position: absolute;
width: 100%;
height: 100%;
transform-style: preserve-3d;
animation: rotate 10s infinite linear;
}
.box .side {
position: absolute;
width: 100%; height: 100%;
background-size: cover;
background-position: center;
backface-visibility: hidden;
}
.box .front {
transform: translateZ(200px);
background-image: url('front.jpg');
}
.box .back {
transform: rotateY(180deg) translateZ(200px);
background-image: url('back.jpg');
}
.box .left {
transform: rotateY(-90deg) translateZ(200px);
background-image: url('left.jpg');
}
.box .right {
transform: rotateY(90deg) translateZ(200px);
background-image: url('right.jpg');
}
.box .top {
transform: rotateX(90deg) translateZ(200px);
background-image: url('top.jpg');
}
.box .bottom {
transform: rotateX(-90deg) translateZ(200px);
background-image: url('bottom.jpg');
}
@keyframes rotate {
from {
transform: rotateY(0deg);
}
to {
transform: rotateY(360deg);
}
}
</style>
</head>
<body>
<div id="app">
<div class="container">
<div class="box">
<div class="side front"></div>
<div class="side back"></div>
<div class="side left"></div>
<div class="side right"></div>
<div class="side top"></div>
<div class="side bottom"></div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
new Vue({
el: '#app',
methods: {
uploadImg: function(event, index) {
var file = event.target.files[0];
var reader = new FileReader();
reader.onload = function(e) {
var imgData = e.target.result;
$('.box .side').eq(index - 1).css('background-image', 'url(' + imgData + ')');
}
reader.readAsDataURL(file);
}
}
});
</script>
</body>
</html>
```
该代码实现了一个3D盒子旋转的效果,盒子的六个面可以分别设置不同的图片。其中,`.container`是盒子的容器,`.box`是盒子本身,`.side`是盒子的六个面,`.front`、`.back`、`.left`、`.right`、`.top`、`.bottom`分别代表盒子的前、后、左、右、上、下六个面。通过设置`transform`属性和`animation`属性,实现了盒子的旋转效果。
此外,代码中还包含了一个`uploadImg`方法,用于上传图片并设置盒子的面的背景图片。该方法使用了jQuery的选择器和Vue的事件绑定,可以根据需要进行修改。
阅读全文