技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運營

贊助商

分類目錄

贊助商

最新文章

搜索

CSS 3D 隨機立方體滑塊【演示/代碼下載】

作者:admin    時間:2023-2-7 19:50:48    瀏覽:

本文介紹一個CSS 3D 隨機立方體滑塊,注意關(guān)鍵詞【隨機】,即該立方體將向各種方向滾動,不限于垂直方向,或者水平方向。如果你想要垂直方向,或者水平方向的3D滾動滑塊效果,可以看看如下文章:

隨機3D立方體滑塊

一點點隨機性可以很好地增強這種動畫效果。因此,與其按順序旋轉(zhuǎn)立方體,不如讓立方體隨心所欲地滾動。

 

demodownload

實際上并不是隨機的——它只是看起來那樣。在每個關(guān)鍵幀上定義一個transform,讓可以顯示一張圖。

@keyframes r {
  0%, 3%   { transform: var(--_p) rotate3d( 0, 0, 0,  0deg); }
  14%,19%  { transform: var(--_p) rotate3d(-1, 1, 0,180deg); }
  31%,36%  { transform: var(--_p) rotate3d( 0,-1, 0, 90deg); }
  47%,52%  { transform: var(--_p) rotate3d( 1, 0, 0, 90deg); }
  64%,69%  { transform: var(--_p) rotate3d( 1, 0, 0,-90deg); }
  81%,86%  { transform: var(--_p) rotate3d( 0, 1, 0, 90deg); }
  97%,100% { transform: var(--_p) rotate3d( 0, 0, 0,  0deg); }
}

使用rotate3d(),定義單獨的轉(zhuǎn)換,觀察“隨機”結(jié)果,確保第一張圖像分別是第一幀和最后一幀,并在其他每一幀上顯示不同的圖像。

完整HTML代碼

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">

<style>
.gallery {
  --s: 250px; /* the size */
  
  display: grid;
  transform-style: preserve-3d;
  --_p: perspective(calc(2.5*var(--s)));
  animation: r 9s infinite cubic-bezier(.5,-0.5,.5,1.5);
}
.gallery img {
  grid-area: 1/1;
  width: var(--s);
  aspect-ratio: 1;
  object-fit: cover;
  transform: var(--_t,) translateZ(calc(var(--s)/2));
}
.gallery img:nth-child(2) {--_t: rotateX(-90deg)}
.gallery img:nth-child(3) {--_t: rotateY( 90deg)}
.gallery img:nth-child(4) {--_t: rotateX(180deg) rotate( 90deg)}
.gallery img:nth-child(5) {--_t: rotateX( 90deg)}
.gallery img:nth-child(6) {--_t: rotateY(-90deg)}

@keyframes r {
  0%,3%   {transform: var(--_p) rotate3d(0, 0, 0, 0deg)}
  14%,19% {transform: var(--_p) rotate3d(-1, 1, 0, 180deg)}
  31%,36% {transform: var(--_p) rotate3d(0, -1, 0, 90deg)}
  47%,52% {transform: var(--_p) rotate3d(1, 0, 0, 90deg)}
  64%,69% {transform: var(--_p) rotate3d(1, 0, 0, -90deg)}
  81%,86% {transform: var(--_p) rotate3d(0, 1, 0, 90deg)}
  97%,100%{transform: var(--_p) rotate3d(0, 0, 0, 0deg)}
}


body {
  margin: 0;
  min-height: 100vh;
  display: grid;
  place-content: center;
  background: #556270;
  animation: b 9s infinite;
}

@keyframes b {
  0%,3%   {background: #774F38}
  14%,19% {background: #C5E0DC}
  31%,36% {background: #036564}
  45%,55% {background: #B38184}
  64%,69% {background: #424254}
  81%,86% {background: #4DBCE9}
  97%,to  {background: #774F38}
}
</style>

</head>

<body>

<div class="gallery">
  <img src="1-300x300.jpg" >
  <img src="2-300x300.jpg" >
  <img src="3-300x300.jpg" >
  <img src="4-300x300.jpg" >
  <img src="5-300x300.jpg" >
  <img src="6-300x300.jpg" >
</div>
  
</body>

</html>

總結(jié)

本文介紹了CSS 3D 隨機立方體滑塊,前文介紹了非隨機(垂直和水平混合滾動)3D滑塊,以及垂直或水平單方向滾動的3D滑塊,這是一個小系列。CSS 非常強大,無需 JavaScript 的幫助就可以完成復(fù)雜的動畫效果。如果你也喜歡這個效果,可以下載源碼保存起來,或者收藏本文。

相關(guān)文章

標(biāo)簽: css  3D滑塊  滑塊  
x
  • 站長推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */