<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>3D Dönen Küp</title>
</head>
<body>
<div id="stage">
<div id="front" class="plane"><p>@thecodeblanks</p></div>
<div id="back" class="plane"><p>Html</p></div>
<div id="right" class="plane"><p>Css</p></div>
<div id="left" class="plane"><p>Javascript</p></div>
<div id="top" class="plane"><p>Jquery</p></div>
<div id="bottom" class="plane"><p>For You</p></div>
</div>
</body>
</html>
Giriş yap
Snippet’leri beğenmek ve favorilerine eklemek için ücretsiz hesabınla giriş yap.
body {
display: flex;
align-items: center;
justify-content: center;
perspective: 800px;
background-color: transparent;
}
#stage {
width: 200px;
height: 200px;
margin: 50px auto;
transform-style: preserve-3d;
animation: rotate 10s linear infinite;
}
.plane {
position: absolute;
width: 200px;
height: 200px;
border: 2px solid black;
background: rgba(0, 150, 255, 0.5);
opacity: 0.8;
display: flex;
justify-content: center;
align-items: center;
}
.plane p {
color: white;
font-size: 24px;
font-weight: bold;
} /* Yazı stili */
#front {
transform: translateZ(100px);
}
#back {
transform: rotateY(180deg) translateZ(100px);
}
#right {
transform: rotateY(90deg) translateZ(100px);
}
#left {
transform: rotateY(-90deg) translateZ(100px);
}
#top {
transform: rotateX(90deg) translateZ(100px);
}
#bottom {
transform: rotateX(-90deg) translateZ(100px);
}
@keyframes rotate {
from {
transform: rotateX(0deg) rotateY(0deg);
}
to {
transform: rotateX(360deg) rotateY(360deg);
}
}
Bu snippet hakkında
Canvas yok, WebGL yok: bu dönen küp, CSS ile 3B uzayda konumlandırılmış altı sıradan div öğesinden oluşur. Her yüzün kendi etiketi vardır (HTML, CSS, JavaScript vb.) ve küpün tamamı 10 saniyelik bir döngüyle X ve Y eksenlerinde döner.
Nasıl çalışır?
- Üst öğedeki
perspective: 800pxsahneye derinlik verir; daha küçük değerler 3B etkiyi abartır. #stageöğesitransform-style: preserve-3dkullanır; böylece alt öğeler düzleşmez, 3B konumlarını korur.- Her yüz önce baktığı yöne döndürülür (
rotateY(90deg),rotateX(-90deg)…), ardından küpün 200 piksellik genişliğinin yarısı kadar, yanitranslateZ(100px)ile dışarı itilir. rotatekeyframe'leri sahneyi iki eksende de 0°'den 360°'ye çevirir;linearzamanlama dönüş hızını sabit tutar.
Nasıl kullanılır?
- Altı
.planeyüzünü içeren HTML yapısını ve CSS'i kopyala. - Boyutu değiştirmek için
#stageve.planeiçinwidth/heightdeğerlerini güncelle, sonra tümtranslateZdeğerlerini bunun yarısına ayarla. - Her
<p>içindeki yazıyı değiştir ya da yüzlere görsel koyarak bir ürün veya logo küpü yap. - Dönüşü hızlandırmak ya da yavaşlatmak için animasyondaki
10sdeğerini değiştir.
İpuçları
Yüzlerde opak arka plan kullanıyorsan backface-visibility: hidden ekle. Küpü etkileşimli yapmak için üzerine gelindiğinde animation-play-state: paused ile durdurabilirsin.
Yorumlar 0
Henüz yorum yok. İlk yorumu sen yaz.