📝 代码查看
使用runcode.html页面

2
查看次数
2025-11-06
创建时间
2025-11-06
最后更新
<div></div>
html, body {
  width: 100%;
  height: 100%;
  display: flex;
}

div {
  margin: auto;
  position: relative;
  width: 300px;
  height: 400px;
  background: url(https://picsum.photos/id/20/300/400) no-repeat;
  background-size: cover;
}
div::before {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: url(https://picsum.photos/id/30/300/400) no-repeat;
  background-size: cover;
  z-index: 1;
  -webkit-animation: maskRotate 4s ease-in-out infinite;
          animation: maskRotate 4s ease-in-out infinite;
}

@-webkit-keyframes maskRotate {
  0% {
    -webkit-mask: linear-gradient(45deg, #000 0%, transparent 0%, transparent 0%);
            mask: linear-gradient(45deg, #000 0%, transparent 0%, transparent 0%);
  }
  1% {
    -webkit-mask: linear-gradient(45deg, #000 2%, transparent 2.5%, transparent 2.5%);
            mask: linear-gradient(45deg, #000 2%, transparent 2.5%, transparent 2.5%);
  }
  2% {
    -webkit-mask: linear-gradient(45deg, #000 4%, transparent 5%, transparent 5%);
            mask: linear-gradient(45deg, #000 4%, transparent 5%, transparent 5%);
  }
  3% {
    -webkit-mask: linear-gradient(45deg, #000 6%, transparent 7.5%, transparent 7.5%);
            mask: linear-gradient(45deg, #000 6%, transparent 7.5%, transparent 7.5%);
  }
  4% {
    -webkit-mask: linear-gradient(45deg, #000 8%, transparent 10%, transparent 10%);
            mask: linear-gradient(45deg, #000 8%, transparent 10%, transparent 10%);
  }
  5% {
    -webkit-mask: linear-gradient(45deg, #000 10%, transparent 12.5%, transparent 12.5%);
            mask: linear-gradient(45deg, #000 10%, transparent 12.5%, transparent 12.5%);
  }
  6% {
    -webkit-mask: linear-gradient(45deg, #000 12%, transparent 15%, transparent 15%);
            mask: linear-gradient(45deg, #000 12%, transparent 15%, transparent 15%);
  }
  7% {
    -webkit-mask: linear-gradient(45deg, #000 14%, transparent 17.5%, transparent 17.5%);
            mask: linear-gradient(45deg, #000 14%, transparent 17.5%, transparent 17.5%);
  }
  8% {
    -webkit-mask: linear-gradient(45deg, #000 16%, transparent 20%, transparent 20%);
            mask: linear-gradient(45deg, #000 16%, transparent 20%, transparent 20%);
  }
  9% {
    -webkit-mask: linear-gradient(45deg, #000 18%, transparent 22.5%, transparent 22.5%);
            mask: linear-gradient(45deg, #000 18%, transparent 22.5%, transparent 22.5%);
  }
  10% {
    -webkit-mask: linear-gradient(45deg, #000 20%, transparent 25%, transparent 25%);
            mask: linear-gradient(45deg, #000 20%, transparent 25%, transparent 25%);
  }
  11% {
    -webkit-mask: linear-gradient(45deg, #000 22%, transparent 27.5%, transparent 27.5%);
            mask: linear-gradient(45deg, #000 22%, transparent 27.5%, transparent 27.5%);
  }
  12% {
    -webkit-mask: linear-gradient(45deg, #000 24%, transparent 30%, transparent 30%);
            mask: linear-gradient(45deg, #000 24%, transparent 30%, transparent 30%);
  }
  13% {
    -webkit-mask: linear-gradient(45deg, #000 26%, transparent 32.5%, transparent 32.5%);
            mask: linear-gradient(45deg, #000 26%, transparent 32.5%, transparent 32.5%);
  }
  14% {
    -webkit-mask: linear-gradient(45deg, #000 28%, transparent 35%, transparent 35%);
            mask: linear-gradient(45deg, #000 28%, transparent 35%, transparent 35%);
  }
  15% {
    -webkit-mask: linear-gradient(45deg, #000 30%, transparent 37.5%, transparent 37.5%);
            mask: linear-gradient(45deg, #000 30%, transparent 37.5%, transparent 37.5%);
  }
  16% {
    -webkit-mask: linear-gradient(45deg, #000 32%, transparent 40%, transparent 40%);
            mask: linear-gradient(45deg, #000 32%, transparent 40%, transparent 40%);
  }
  17% {
    -webkit-mask: linear-gradient(45deg, #000 34%, transparent 42.5%, transparent 42.5%);
            mask: linear-gradient(45deg, #000 34%, transparent 42.5%, transparent 42.5%);
  }
  18% {
    -webkit-mask: linear-gradient(45deg, #000 36%, transparent 45%, transparent 45%);
            mask: linear-gradient(45deg, #000 36%, transparent 45%, transparent 45%);
  }
  19% {
    -webkit-mask: linear-gradient(45deg, #000 38%, transparent 47.5%, transparent 47.5%);
            mask: linear-gradient(45deg, #000 38%, transparent 47.5%, transparent 47.5%);
  }
  20% {
    -webkit-mask: linear-gradient(45deg, #000 40%, transparent 50%, transparent 50%);
            mask: linear-gradient(45deg, #000 40%, transparent 50%, transparent 50%);
  }
  21% {
    -webkit-mask: linear-gradient(45deg, #000 42%, transparent 52.5%, transparent 52.5%);
            mask: linear-gradient(45deg, #000 42%, transparent 52.5%, transparent 52.5%);
  }
  22% {
    -webkit-mask: linear-gradient(45deg, #000 44%, transparent 55%, transparent 55%);
            mask: linear-gradient(45deg, #000 44%, transparent 55%, transparent 55%);
  }
  23% {
    -webkit-mask: linear-gradient(45deg, #000 46%, transparent 57.5%, transparent 57.5%);
            mask: linear-gradient(45deg, #000 46%, transparent 57.5%, transparent 57.5%);
  }
  24% {
    -webkit-mask: linear-gradient(45deg, #000 48%, transparent 60%, transparent 60%);
            mask: linear-gradient(45deg, #000 48%, transparent 60%, transparent 60%);
  }
  25% {
    -webkit-mask: linear-gradient(45deg, #000 50%, transparent 62.5%, transparent 62.5%);
            mask: linear-gradient(45deg, #000 50%, transparent 62.5%, transparent 62.5%);
  }
  26% {
    -webkit-mask: linear-gradient(45deg, #000 52%, transparent 65%, transparent 65%);
            mask: linear-gradient(45deg, #000 52%, transparent 65%, transparent 65%);
  }
  27% {
    -webkit-mask: linear-gradient(45deg, #000 54%, transparent 67.5%, transparent 67.5%);
            mask: linear-gradient(45deg, #000 54%, transparent 67.5%, transparent 67.5%);
  }
  28% {
    -webkit-mask: linear-gradient(45deg, #000 56%, transparent 70%, transparent 70%);
            mask: linear-gradient(45deg, #000 56%, transparent 70%, transparent 70%);
  }
  29% {
    -webkit-mask: linear-gradient(45deg, #000 58%, transparent 72.5%, transparent 72.5%);
            mask: linear-gradient(45deg, #000 58%, transparent 72.5%, transparent 72.5%);
  }
  30% {
    -webkit-mask: linear-gradient(45deg, #000 60%, transparent 75%, transparent 75%);
            mask: linear-gradient(45deg, #000 60%, transparent 75%, transparent 75%);
  }
  31% {
    -webkit-mask: linear-gradient(45deg, #000 62%, transparent 77.5%, transparent 77.5%);
            mask: linear-gradient(45deg, #000 62%, transparent 77.5%, transparent 77.5%);
  }
  32% {
    -webkit-mask: linear-gradient(45deg, #000 64%, transparent 80%, transparent 80%);
            mask: linear-gradient(45deg, #000 64%, transparent 80%, transparent 80%);
  }
  33% {
    -webkit-mask: linear-gradient(45deg, #000 66%, transparent 82.5%, transparent 82.5%);
            mask: linear-gradient(45deg, #000 66%, transparent 82.5%, transparent 82.5%);
  }
  34% {
    -webkit-mask: linear-gradient(45deg, #000 68%, transparent 85%, transparent 85%);
            mask: linear-gradient(45deg, #000 68%, transparent 85%, transparent 85%);
  }
  35% {
    -webkit-mask: linear-gradient(45deg, #000 70%, transparent 87.5%, transparent 87.5%);
            mask: linear-gradient(45deg, #000 70%, transparent 87.5%, transparent 87.5%);
  }
  36% {
    -webkit-mask: linear-gradient(45deg, #000 72%, transparent 90%, transparent 90%);
            mask: linear-gradient(45deg, #000 72%, transparent 90%, transparent 90%);
  }
  37% {
    -webkit-mask: linear-gradient(45deg, #000 74%, transparent 92.5%, transparent 92.5%);
            mask: linear-gradient(45deg, #000 74%, transparent 92.5%, transparent 92.5%);
  }
  38% {
    -webkit-mask: linear-gradient(45deg, #000 76%, transparent 95%, transparent 95%);
            mask: linear-gradient(45deg, #000 76%, transparent 95%, transparent 95%);
  }
  39% {
    -webkit-mask: linear-gradient(45deg, #000 78%, transparent 97.5%, transparent 97.5%);
            mask: linear-gradient(45deg, #000 78%, transparent 97.5%, transparent 97.5%);
  }
  40% {
    -webkit-mask: linear-gradient(45deg, #000 80%, transparent 100%, transparent 100%);
            mask: linear-gradient(45deg, #000 80%, transparent 100%, transparent 100%);
  }
  41% {
    -webkit-mask: linear-gradient(45deg, #000 82%, transparent 102.5%, transparent 102.5%);
            mask: linear-gradient(45deg, #000 82%, transparent 102.5%, transparent 102.5%);
  }
  42% {
    -webkit-mask: linear-gradient(45deg, #000 84%, transparent 105%, transparent 105%);
            mask: linear-gradient(45deg, #000 84%, transparent 105%, transparent 105%);
  }
  43% {
    -webkit-mask: linear-gradient(45deg, #000 86%, transparent 107.5%, transparent 107.5%);
            mask: linear-gradient(45deg, #000 86%, transparent 107.5%, transparent 107.5%);
  }
  44% {
    -webkit-mask: linear-gradient(45deg, #000 88%, transparent 110%, transparent 110%);
            mask: linear-gradient(45deg, #000 88%, transparent 110%, transparent 110%);
  }
  45% {
    -webkit-mask: linear-gradient(45deg, #000 90%, transparent 112.5%, transparent 112.5%);
            mask: linear-gradient(45deg, #000 90%, transparent 112.5%, transparent 112.5%);
  }
  46% {
    -webkit-mask: linear-gradient(45deg, #000 92%, transparent 115%, transparent 115%);
            mask: linear-gradient(45deg, #000 92%, transparent 115%, transparent 115%);
  }
  47% {
    -webkit-mask: linear-gradient(45deg, #000 94%, transparent 117.5%, transparent 117.5%);
            mask: linear-gradient(45deg, #000 94%, transparent 117.5%, transparent 117.5%);
  }
  48% {
    -webkit-mask: linear-gradient(45deg, #000 96%, transparent 120%, transparent 120%);
            mask: linear-gradient(45deg, #000 96%, transparent 120%, transparent 120%);
  }
  49% {
    -webkit-mask: linear-gradient(45deg, #000 98%, transparent 122.5%, transparent 122.5%);
            mask: linear-gradient(45deg, #000 98%, transparent 122.5%, transparent 122.5%);
  }
  50% {
    -webkit-mask: linear-gradient(45deg, #000 100%, transparent 125%, transparent 125%);
            mask: linear-gradient(45deg, #000 100%, transparent 125%, transparent 125%);
  }
  100% {
    -webkit-mask: linear-gradient(45deg, #000 , #000 100%);
            mask: linear-gradient(45deg, #000 , #000 100%);
  }
}

@keyframes maskRotate {
  0% {
    -webkit-mask: linear-gradient(45deg, #000 0%, transparent 0%, transparent 0%);
            mask: linear-gradient(45deg, #000 0%, transparent 0%, transparent 0%);
  }
  1% {
    -webkit-mask: linear-gradient(45deg, #000 2%, transparent 2.5%, transparent 2.5%);
            mask: linear-gradient(45deg, #000 2%, transparent 2.5%, transparent 2.5%);
  }
  2% {
    -webkit-mask: linear-gradient(45deg, #000 4%, transparent 5%, transparent 5%);
            mask: linear-gradient(45deg, #000 4%, transparent 5%, transparent 5%);
  }
  3% {
    -webkit-mask: linear-gradient(45deg, #000 6%, transparent 7.5%, transparent 7.5%);
            mask: linear-gradient(45deg, #000 6%, transparent 7.5%, transparent 7.5%);
  }
  4% {
    -webkit-mask: linear-gradient(45deg, #000 8%, transparent 10%, transparent 10%);
            mask: linear-gradient(45deg, #000 8%, transparent 10%, transparent 10%);
  }
  5% {
    -webkit-mask: linear-gradient(45deg, #000 10%, transparent 12.5%, transparent 12.5%);
            mask: linear-gradient(45deg, #000 10%, transparent 12.5%, transparent 12.5%);
  }
  6% {
    -webkit-mask: linear-gradient(45deg, #000 12%, transparent 15%, transparent 15%);
            mask: linear-gradient(45deg, #000 12%, transparent 15%, transparent 15%);
  }
  7% {
    -webkit-mask: linear-gradient(45deg, #000 14%, transparent 17.5%, transparent 17.5%);
            mask: linear-gradient(45deg, #000 14%, transparent 17.5%, transparent 17.5%);
  }
  8% {
    -webkit-mask: linear-gradient(45deg, #000 16%, transparent 20%, transparent 20%);
            mask: linear-gradient(45deg, #000 16%, transparent 20%, transparent 20%);
  }
  9% {
    -webkit-mask: linear-gradient(45deg, #000 18%, transparent 22.5%, transparent 22.5%);
            mask: linear-gradient(45deg, #000 18%, transparent 22.5%, transparent 22.5%);
  }
  10% {
    -webkit-mask: linear-gradient(45deg, #000 20%, transparent 25%, transparent 25%);
            mask: linear-gradient(45deg, #000 20%, transparent 25%, transparent 25%);
  }
  11% {
    -webkit-mask: linear-gradient(45deg, #000 22%, transparent 27.5%, transparent 27.5%);
            mask: linear-gradient(45deg, #000 22%, transparent 27.5%, transparent 27.5%);
  }
  12% {
    -webkit-mask: linear-gradient(45deg, #000 24%, transparent 30%, transparent 30%);
            mask: linear-gradient(45deg, #000 24%, transparent 30%, transparent 30%);
  }
  13% {
    -webkit-mask: linear-gradient(45deg, #000 26%, transparent 32.5%, transparent 32.5%);
            mask: linear-gradient(45deg, #000 26%, transparent 32.5%, transparent 32.5%);
  }
  14% {
    -webkit-mask: linear-gradient(45deg, #000 28%, transparent 35%, transparent 35%);
            mask: linear-gradient(45deg, #000 28%, transparent 35%, transparent 35%);
  }
  15% {
    -webkit-mask: linear-gradient(45deg, #000 30%, transparent 37.5%, transparent 37.5%);
            mask: linear-gradient(45deg, #000 30%, transparent 37.5%, transparent 37.5%);
  }
  16% {
    -webkit-mask: linear-gradient(45deg, #000 32%, transparent 40%, transparent 40%);
            mask: linear-gradient(45deg, #000 32%, transparent 40%, transparent 40%);
  }
  17% {
    -webkit-mask: linear-gradient(45deg, #000 34%, transparent 42.5%, transparent 42.5%);
            mask: linear-gradient(45deg, #000 34%, transparent 42.5%, transparent 42.5%);
  }
  18% {
    -webkit-mask: linear-gradient(45deg, #000 36%, transparent 45%, transparent 45%);
            mask: linear-gradient(45deg, #000 36%, transparent 45%, transparent 45%);
  }
  19% {
    -webkit-mask: linear-gradient(45deg, #000 38%, transparent 47.5%, transparent 47.5%);
            mask: linear-gradient(45deg, #000 38%, transparent 47.5%, transparent 47.5%);
  }
  20% {
    -webkit-mask: linear-gradient(45deg, #000 40%, transparent 50%, transparent 50%);
            mask: linear-gradient(45deg, #000 40%, transparent 50%, transparent 50%);
  }
  21% {
    -webkit-mask: linear-gradient(45deg, #000 42%, transparent 52.5%, transparent 52.5%);
            mask: linear-gradient(45deg, #000 42%, transparent 52.5%, transparent 52.5%);
  }
  22% {
    -webkit-mask: linear-gradient(45deg, #000 44%, transparent 55%, transparent 55%);
            mask: linear-gradient(45deg, #000 44%, transparent 55%, transparent 55%);
  }
  23% {
    -webkit-mask: linear-gradient(45deg, #000 46%, transparent 57.5%, transparent 57.5%);
            mask: linear-gradient(45deg, #000 46%, transparent 57.5%, transparent 57.5%);
  }
  24% {
    -webkit-mask: linear-gradient(45deg, #000 48%, transparent 60%, transparent 60%);
            mask: linear-gradient(45deg, #000 48%, transparent 60%, transparent 60%);
  }
  25% {
    -webkit-mask: linear-gradient(45deg, #000 50%, transparent 62.5%, transparent 62.5%);
            mask: linear-gradient(45deg, #000 50%, transparent 62.5%, transparent 62.5%);
  }
  26% {
    -webkit-mask: linear-gradient(45deg, #000 52%, transparent 65%, transparent 65%);
            mask: linear-gradient(45deg, #000 52%, transparent 65%, transparent 65%);
  }
  27% {
    -webkit-mask: linear-gradient(45deg, #000 54%, transparent 67.5%, transparent 67.5%);
            mask: linear-gradient(45deg, #000 54%, transparent 67.5%, transparent 67.5%);
  }
  28% {
    -webkit-mask: linear-gradient(45deg, #000 56%, transparent 70%, transparent 70%);
            mask: linear-gradient(45deg, #000 56%, transparent 70%, transparent 70%);
  }
  29% {
    -webkit-mask: linear-gradient(45deg, #000 58%, transparent 72.5%, transparent 72.5%);
            mask: linear-gradient(45deg, #000 58%, transparent 72.5%, transparent 72.5%);
  }
  30% {
    -webkit-mask: linear-gradient(45deg, #000 60%, transparent 75%, transparent 75%);
            mask: linear-gradient(45deg, #000 60%, transparent 75%, transparent 75%);
  }
  31% {
    -webkit-mask: linear-gradient(45deg, #000 62%, transparent 77.5%, transparent 77.5%);
            mask: linear-gradient(45deg, #000 62%, transparent 77.5%, transparent 77.5%);
  }
  32% {
    -webkit-mask: linear-gradient(45deg, #000 64%, transparent 80%, transparent 80%);
            mask: linear-gradient(45deg, #000 64%, transparent 80%, transparent 80%);
  }
  33% {
    -webkit-mask: linear-gradient(45deg, #000 66%, transparent 82.5%, transparent 82.5%);
            mask: linear-gradient(45deg, #000 66%, transparent 82.5%, transparent 82.5%);
  }
  34% {
    -webkit-mask: linear-gradient(45deg, #000 68%, transparent 85%, transparent 85%);
            mask: linear-gradient(45deg, #000 68%, transparent 85%, transparent 85%);
  }
  35% {
    -webkit-mask: linear-gradient(45deg, #000 70%, transparent 87.5%, transparent 87.5%);
            mask: linear-gradient(45deg, #000 70%, transparent 87.5%, transparent 87.5%);
  }
  36% {
    -webkit-mask: linear-gradient(45deg, #000 72%, transparent 90%, transparent 90%);
            mask: linear-gradient(45deg, #000 72%, transparent 90%, transparent 90%);
  }
  37% {
    -webkit-mask: linear-gradient(45deg, #000 74%, transparent 92.5%, transparent 92.5%);
            mask: linear-gradient(45deg, #000 74%, transparent 92.5%, transparent 92.5%);
  }
  38% {
    -webkit-mask: linear-gradient(45deg, #000 76%, transparent 95%, transparent 95%);
            mask: linear-gradient(45deg, #000 76%, transparent 95%, transparent 95%);
  }
  39% {
    -webkit-mask: linear-gradient(45deg, #000 78%, transparent 97.5%, transparent 97.5%);
            mask: linear-gradient(45deg, #000 78%, transparent 97.5%, transparent 97.5%);
  }
  40% {
    -webkit-mask: linear-gradient(45deg, #000 80%, transparent 100%, transparent 100%);
            mask: linear-gradient(45deg, #000 80%, transparent 100%, transparent 100%);
  }
  41% {
    -webkit-mask: linear-gradient(45deg, #000 82%, transparent 102.5%, transparent 102.5%);
            mask: linear-gradient(45deg, #000 82%, transparent 102.5%, transparent 102.5%);
  }
  42% {
    -webkit-mask: linear-gradient(45deg, #000 84%, transparent 105%, transparent 105%);
            mask: linear-gradient(45deg, #000 84%, transparent 105%, transparent 105%);
  }
  43% {
    -webkit-mask: linear-gradient(45deg, #000 86%, transparent 107.5%, transparent 107.5%);
            mask: linear-gradient(45deg, #000 86%, transparent 107.5%, transparent 107.5%);
  }
  44% {
    -webkit-mask: linear-gradient(45deg, #000 88%, transparent 110%, transparent 110%);
            mask: linear-gradient(45deg, #000 88%, transparent 110%, transparent 110%);
  }
  45% {
    -webkit-mask: linear-gradient(45deg, #000 90%, transparent 112.5%, transparent 112.5%);
            mask: linear-gradient(45deg, #000 90%, transparent 112.5%, transparent 112.5%);
  }
  46% {
    -webkit-mask: linear-gradient(45deg, #000 92%, transparent 115%, transparent 115%);
            mask: linear-gradient(45deg, #000 92%, transparent 115%, transparent 115%);
  }
  47% {
    -webkit-mask: linear-gradient(45deg, #000 94%, transparent 117.5%, transparent 117.5%);
            mask: linear-gradient(45deg, #000 94%, transparent 117.5%, transparent 117.5%);
  }
  48% {
    -webkit-mask: linear-gradient(45deg, #000 96%, transparent 120%, transparent 120%);
            mask: linear-gradient(45deg, #000 96%, transparent 120%, transparent 120%);
  }
  49% {
    -webkit-mask: linear-gradient(45deg, #000 98%, transparent 122.5%, transparent 122.5%);
            mask: linear-gradient(45deg, #000 98%, transparent 122.5%, transparent 122.5%);
  }
  50% {
    -webkit-mask: linear-gradient(45deg, #000 100%, transparent 125%, transparent 125%);
            mask: linear-gradient(45deg, #000 100%, transparent 125%, transparent 125%);
  }
  100% {
    -webkit-mask: linear-gradient(45deg, #000 , #000 100%);
            mask: linear-gradient(45deg, #000 , #000 100%);
  }
}
暂无JavaScript代码

👁️ 实时预览