3D盒子旋转

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        body {
            background-color: black;
            perspective: 1000px;
        }
        #box {
            width: 500px;
            height: 500px;
            margin: 200px auto;
            position: relative;
            font-size: 40px;
            transform-style: preserve-3d;
            animation: rotate 5s linear infinite;
        }
        #box>div {
            width: 500px;
            height: 500px;
            border: 1px solid #ccc;
            color: white;
            text-align: center;
            line-height: 500px;
            transform-style: preserve-3d;
            position: absolute;
            left: 0;
            right: 0;
            top: 0;
            bottom: 0;
            margin: auto;
        }

        #box>div:nth-child(1) {
            transform: translateZ(250px);
            background-color: red;
            opacity: 0.5;
        }
        #box>div:nth-child(2) {
            transform: translateX(-250px) rotateY(-90deg);
            background-color: blue;
            opacity: 0.5;
        }
        #box>div:nth-child(3) {
            transform: translateX(250px) rotateY(90deg);
            background-color: blue;
            opacity: 0.5;
        }
        #box>div:nth-child(4) {
            transform: translateY(-250px) rotateX(90deg);
            background-color: yellow;
            opacity: 0.5;
        }
        #box>div:nth-child(5) {
            transform: translateY(250px) rotateX(-90deg);
            background-color: yellow;
            opacity: 0.3;
        }
        #box>div:nth-child(6) {
            transform: translateZ(-250px);
            background-color: red;
            opacity: 0.5;
        }
        @keyframes rotate {
             from {
                 transform: rotate3d(0,1,1,0deg);
             }
            to {
                transform: rotate3d(1,1,1,360deg);
            }
        }
    </style>
</head>
<body>
      <div id="box">
          <div>1</div>
          <div>2</div>
          <div>3</div>
          <div>4</div>
          <div>5</div>
          <div>6</div>
      </div>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于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的事件绑定,可以根据需要进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值