ana_sayfa / css / transition-ve-animation
🎨 Css 📊 Orta ⏱ 30 dk 📋 1 Kod Örneği

Transition ve Animation

CSS transition ile hover efektleri, @keyframes ile animasyonlar.

CSS animasyonları JavaScript gerektirmeden görsel zenginlik katar. transition iki durum arası geçiş, animation çok adımlı sürekli hareketler için kullanılır.

transition Özellikleri

transition: özellik süre zamanlama gecikme şeklinde yazılır. ease yavaş başlar hızlanır yavaşlar, linear sabit hızda gider.

@keyframes ile Animasyon

from/to veya yüzde (0%, 50%, 100%) ile animasyon adımları tanımlanır. animation-iteration-count: infinite ile sonsuz döngü yapılır.

HTML Transition ve Animasyon Örnekleri
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<style>
  body { font-family: sans-serif; padding: 24px; background: #f8fafc; }
  h3 { margin: 24px 0 12px; color: #1e293b; }

  /* 1. Buton hover efekti */
  .btn-animasyon {
    padding: 12px 28px;
    background: #6366f1;
    color: white;
    border: none;
    border-radius: 10px;
    font-size: 15px;
    cursor: pointer;
    transition: background 0.2s ease,
                transform 0.2s ease,
                box-shadow 0.2s ease;
  }
  .btn-animasyon:hover {
    background: #4f46e5;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(99,102,241,0.35);
  }
  .btn-animasyon:active {
    transform: translateY(0);
    box-shadow: none;
  }

  /* 2. Kart flip efekti */
  .flip-kapsayici {
    width: 180px; height: 120px;
    perspective: 800px;
    cursor: pointer;
    display: inline-block;
    margin-right: 16px;
  }
  .flip-ic {
    width: 100%; height: 100%;
    position: relative;
    transform-style: preserve-3d;
    transition: transform 0.6s ease;
  }
  .flip-kapsayici:hover .flip-ic { transform: rotateY(180deg); }
  .flip-on, .flip-arka {
    position: absolute; inset: 0;
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    font-weight: bold; font-size: 14px;
    backface-visibility: hidden;
  }
  .flip-on   { background: #6366f1; color: white; }
  .flip-arka { background: #10b981; color: white; transform: rotateY(180deg); }

  /* 3. Keyframe animasyonları */
  @keyframes yanip-sonme {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.3; }
  }
  @keyframes don {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
  }
  @keyframes ziplama {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(-20px); }
  }
  @keyframes kayma {
    from { transform: translateX(-50px); opacity: 0; }
    to   { transform: translateX(0);     opacity: 1; }
  }
  @keyframes nabiz {
    0%, 100% { transform: scale(1); }
    50%       { transform: scale(1.1); }
  }

  .yanip-sonen { animation: yanip-sonme 1.5s ease infinite; display: inline-block; background: #ef4444; color: white; padding: 8px 16px; border-radius: 8px; }
  .donen { animation: don 1.5s linear infinite; display: inline-block; font-size: 28px; }
  .ziplayan { animation: ziplama 0.8s ease infinite; display: inline-block; font-size: 28px; }
  .kayan { animation: kayma 0.6s ease forwards; display: inline-block; background: #6366f1; color: white; padding: 8px 20px; border-radius: 8px; }
  .nabiz-atan { animation: nabiz 1s ease infinite; display: inline-block; font-size: 28px; }
</style>
</head>
<body>

<h3>Hover Efekti</h3>
<button class="btn-animasyon">Üzerime Gel</button>

<h3>Kart Flip (hover ile çevir)</h3>
<div class="flip-kapsayici">
  <div class="flip-ic">
    <div class="flip-on">Ön Yüz 🃏</div>
    <div class="flip-arka">Arka Yüz ✨</div>
  </div>
</div>

<h3>Keyframe Animasyonları</h3>
<span class="yanip-sonen">● Canlı</span> &nbsp;
<span class="donen">⚙</span> &nbsp;
<span class="ziplayan">🏀</span> &nbsp;
<span class="kayan">Kayarak geldi</span> &nbsp;
<span class="nabiz-atan">❤</span>

</body>
</html>
CANLI ÖNİZLEME
← Önceki Ders
CSS Değişkenleri (Custom Properties)
Sonraki Ders →
CSS Filtreleri ve Blend Mode