HTML+CSS+JS 鼠标正方体发光特效

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>TORLAN</title>
    <style>
      body {
        margin: 0;
        overflow: hidden;
        width: 100vw;
        height: 100vh;
        background: #222;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
      }
 
      .world {
        -webkit-perspective: 800px;
        perspective: 800px;
        width: 100vh;
        height: 100vh;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
      }
 
      .cube {
        -webkit-transform-style: preserve-3d;
        transform-style: preserve-3d;
        -webkit-backface-visibility: hidden;
        backface-visibility: hidden;
        width: 50vh;
        height: 50vh;
        position: relative;
        -webkit-animation: rotator 4.5s linear infinite;
        animation: rotator 4.5s linear infinite;
        outline: 0;
      }
      .cube * {
        background: #000;
        box-shadow: 0 0 3vh currentColor;
        -webkit-transition: background 0.4s ease-in-out,
          box-shadow 0.4s ease-in-out;
        transition: background 0.4s ease-in-out, box-shadow 0.4s ease-in-out;
      }
      .cube:hover * {
        background: currentColor;
        box-shadow: 0 0 20vh currentColor;
      }
      .cube .cube__front {
        color: deeppink;
        -webkit-transform: translateZ(25vh);
        transform: translateZ(25vh);
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
      }
      .cube .cube__right {
        color: lightcoral;
        -webkit-transform: rotateY(90deg) translateZ(25vh);
        transform: rotateY(90deg) translateZ(25vh);
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
      }
      .cube .cube__left {
        color: skyblue;
        -webkit-transform: rotateY(270deg) translateZ(25vh);
        transform: rotateY(270deg) translateZ(25vh);
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
      }
      .cube .cube__back {
        color: seagreen;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        -webkit-transform: rotateY(180deg) translateZ(25vh);
        transform: rotateY(180deg) translateZ(25vh);
      }
      .cube .cube__top {
        color: mediumseagreen;
        -webkit-transform: rotateX(90deg) translateZ(25vh);
        transform: rotateX(90deg) translateZ(25vh);
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
      }
      .cube .cube__bottom {
        color: dodgerblue;
        -webkit-transform: rotateX(270deg) translateZ(25vh);
        transform: rotateX(270deg) translateZ(25vh);
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
      }
 
      @-webkit-keyframes rotator {
        0% {
          -webkit-transform: rotateX(0deg) rotateY(0deg);
          transform: rotateX(0deg) rotateY(0deg);
        }
        100% {
          -webkit-transform: rotateX(360deg) rotateY(360deg);
          transform: rotateX(360deg) rotateY(360deg);
        }
      }
 
      @keyframes rotator {
        0% {
          -webkit-transform: rotateX(0deg) rotateY(0deg);
          transform: rotateX(0deg) rotateY(0deg);
        }
        100% {
          -webkit-transform: rotateX(360deg) rotateY(360deg);
          transform: rotateX(360deg) rotateY(360deg);
        }
      }
    </style>
  </head>
  <body>
    <div class="world">
      <div class="cube" tabindex="0">
        <div class="cube__front"></div>
        <div class="cube__back"></div>
        <div class="cube__left"></div>
        <div class="cube__right"></div>
        <div class="cube__top"></div>
        <div class="cube__bottom"></div>
      </div>
    </div>
  </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值