Animasyonla İlgili CSS Özellikleri
Bu makale, animasyonla ilgili CSS özelliklerini açıklar.
@keyframes
, animation
ve transition
özelliklerinin kullanımını ve söz dizimini öğrenebilirsiniz.
YouTube Video
Önizleme için HTML
css-animation.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>CSS Properties Example</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-animation.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>CSS Properties For Animation</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header>
19 <h2>Animation Related Properties</h2>
20 </header>
21 <article>
22 <h3>@keyframes</h3>
23 <section>
24 <h4>Animation Examples</h4>
25 <header><h4>animation: slide 3s ease infinite</h4></header>
26 <section class="sample-view">
27 <div class="box-animation-slide">Slide Box</div>
28 </section>
29 <header><h4>animation: color-change 3s ease infinite</h4></header>
30 <section class="sample-view">
31 <div class="box-animation-color-change">Color Change Box</div>
32 </section>
33 <header><h4>animation: fade 3s ease infinite</h4></header>
34 <section class="sample-view">
35 <div class="box-animation-fade">Fade Box</div>
36 </section>
37 </section>
38 </article>
39 <article>
40 <h3>animation</h3>
41 <section>
42 <h4>Animation Examples</h4>
43 <header><h4>animation: slide 3s ease-in-out infinite</h4></header>
44 <section class="sample-view">
45 <div class="box-animation-ease-in-out">Slide Box</div>
46 </section>
47 <header><h4>animation: color-change 3s ease-in-out 1s 3 alternate</h4></header>
48 <section class="sample-view">
49 <div class="box-animation-alternate">Color Change Box</div>
50 </section>
51 </section>
52 </article>
53 <article>
54 <h3>transition</h3>
55 <section>
56 <h4>Transition Examples</h4>
57 <header><h4>transition: background-color 2s ease</h4></header>
58 <section class="sample-view">
59 <div class="transition-box">Hover me!</div>
60 </section>
61 <header><h4>transition: background-color 5s ease, width 0.5s ease-in</h4></header>
62 <section class="sample-view">
63 <div class="transition-2-properties">Hover me!</div>
64 </section>
65 </section>
66 </article>
67 </main>
68</body>
69</html>
Animasyon ve Geçiş
@keyframes
Kuralı
1/* Animation definition */
2@keyframes slide {
3 0% {
4 transform: translateX(0);
5 }
6 50% {
7 transform: translateX(200px);
8 }
9 100% {
10 transform: translateX(0);
11 }
12}
13
14/* Apply the animation */
15.box-animation-slide {
16 width: 100px;
17 height: 100px;
18 background-color: skyblue;
19 animation: slide 3s ease infinite;
20}
@keyframes
, CSS animasyonlarında stillerin animasyon süresince nasıl değişeceğini belirtmek için kullanılır. @keyframes
içinde, animasyonun başından sonuna kadar olan stil değişiklikleri zaman yüzdeleri veya anahtar kelimeler (from
ve to
) ile belirtilir.
- Bu, bir öğenin soldan sağa kaydığı ve ardından orijinal konumuna geri döndüğü bir animasyon örneğidir.
- Bu örnekte,
@keyframes
'in ardındanslide
yazılmış veslide
adında bir animasyon tanımlanmıştır. 0%
, animasyonun başlangıcıdır vetranslateX(0)
öğeyi orijinal konumuna yerleştirir.50%
, animasyonun ortasıdır ve öğetranslateX(200px)
kullanılarak sağa doğru 200px hareket eder.100%
, animasyonun sonudur ve öğe orijinal konumuna geri döner.box-animation-slide
sınıfında,animation
özelliği 3 saniyelik aralıklarlaslide
animasyonunu uygulamak için kullanılır.
1@keyframes color-change {
2 0% {
3 background-color: red;
4 }
5 25% {
6 background-color: blue;
7 }
8 50% {
9 background-color: green;
10 }
11 75% {
12 background-color: yellow;
13 }
14 100% {
15 background-color: red;
16 }
17}
18
19.box-animation-color-change {
20 width: 100px;
21 height: 100px;
22 background-color: skyblue;
23 animation: color-change 3s ease infinite;
24}
- Animasyon sırasında stilleri ince bir şekilde kontrol edebilirsiniz. Yüzdeler belirleyerek, farklı zamanlarda farklı stiller uygulayabilirsiniz.
- Bu örnekte, renk kırmızıdan maviye, maviden yeşile, yeşilden sarıya ve tekrar kırmızıya geçiş yapar.
1@keyframes fade {
2 from {
3 opacity: 0;
4 }
5 to {
6 opacity: 1;
7 }
8}
9
10.box-animation-fade {
11 width: 100px;
12 height: 100px;
13 background-color: blue;
14 animation: fade 3s ease infinite;
15}
- Bu örnekte,
from
0%
ile eşdeğerdir veto
100%
ile eşdeğerdir. Bu, basit animasyonlar tanımlamanıza olanak tanır.
Temel Sözdizimi
1@keyframes animation-name {
2 0% {
3 /* Style at the start */
4 }
5 50% {
6 /* Style at the midpoint */
7 }
8 100% {
9 /* Style at the end */
10 }
11}
animation-name
: Animasyonun adı.animation
özelliği veyaanimation-name
özelliği kullanılarak belirtilir.- Yüzdeler veya Anahtar Kelimeler:
0%
ile100%
arasındaki yüzdeleri veyafrom
(yani0%
) veto
(yani100%
) anahtar kelimelerini kullanın.
animation
Özelliği
1.box-animation-ease-in-out {
2 width: 100px;
3 height: 100px;
4 background-color: skyblue;
5 animation: slide 3s ease-in-out infinite;
6}
animation
özelliği, bir öğeye animasyon uygulamak için kullanılır. Animasyonlar, bir dizi CSS stilinin zamanla nasıl değiştiğini tanımlar. animation
özelliğiyle, bir animasyonun zamanlamasını, davranışını, gecikmesini, tekrar sayısını ve daha fazlasını kontrol edebilirsiniz.
box-animation-ease-in-out
sınıfı,animation-name
olarakslide
ı belirtir ve@keyframes
içinde tanımlananslide
animasyonunu kullanır.3s
, her animasyon döngüsünün 3 saniyede tamamlandığını belirtenanimation-duration
dır.ease-in-out
, animasyonun yavaş başlamasını, hızlanmasını ve sonunda tekrar yavaşlamasını sağlayananimation-timing-function
dır.infinite
, animasyonun sonsuza kadar tekrarlanacağını belirtenanimation-iteration-count
tır.
1.box-animation-alternate {
2 width: 100px;
3 height: 100px;
4 background-color: skyblue;
5 animation: color-change 3s ease-in-out 1s 3 alternate;
6}
box-animation-alternate
sınıfı,animation-name
olarakcolor-change
i belirtir ve@keyframes
içinde tanımlanancolor-change
animasyonunu kullanır.ease-in-out
ardından gelen1s
, animasyon başlamadan önceki gecikmeyi belirtenanimation-delay
dır. Animasyon 1 saniye sonra başlayacaktır.1s
ardından gelen3
, animasyonun 3 kez tekrarlanacağı anlamına gelenanimation-iteration-count
tır.alternate
, animasyonun oynatma yönünü belirtenanimation-direction
dır.alternate
, animasyonun dönüşümlü olarak oynatılacağını belirtir.
animation
Özelliğinin Bileşimi
animation
özelliği, birkaç alt özelliği birleştirerek tek bir özellik haline getiren bir kısayol özelliğidir. İşte ana alt özellikler:.
animation-name
özelliği: Uygulanacak animasyonun adını belirtir.@keyframes
içinde tanımlanan animasyon adıyla eşleşmelidir.animation-duration
özelliği: Animasyonun bir döngüyü tamamlaması için geçen süreyi belirtir. Zaman birimleri saniyeler (s
) veya milisaniyeler (ms
)dir.animation-timing-function
özelliği: Animasyonun hız eğrisini belirtir.ease
,linear
,ease-in
,ease-out
,ease-in-out
gibi değerler kullanılır.ease
belirtmek, animasyonun yavaş başlamasını, hızlanmasını ve sonunda tekrar yavaşlamasını sağlar.linear
belirtmek, animasyonun baştan sona sabit bir hızla ilerlemesini sağlar.ease-in
belirtmek, animasyonun yavaş başlayıp hızlı bitmesini sağlar.ease-out
belirtmek, animasyonun hızlı başlayıp yavaş bitmesini sağlar.ease-in-out
belirtmek, animasyonun yavaş başlayıp hızlanarak ilerlemesini ve sonunda tekrar yavaşlamasını sağlar.
animation-delay
özelliği, animasyon başlamadan önceki gecikmeyi belirtir. Zaman birimi ya saniye ya da milisaniyedir.animation-iteration-count
özelliği, animasyonun kaç kez tekrarlanacağını belirtir.infinite
belirtmek, animasyonun süresiz olarak tekrarlanmasını sağlar.animation-direction
özelliği, animasyonun oynatılma yönünü belirtir. Seçenekler şunları içerir:normal
(ileri yönde),reverse
(geri yönde),alternate
(dönüşümlü oynatma) vealternate-reverse
(geri yönde başlayarak dönüşümlü oynatma).animation-fill-mode
özelliği, animasyon başlamadan önceki ve bittikten sonraki durumunu belirtir.none
,forwards
,backwards
veyaboth
seçeneklerinden birini belirtebilirsiniz.animation-play-state
özelliği, animasyonun çalışır durumda mı yoksa duraklatılmış mı olduğunu belirtir.running
veyapaused
olarak belirtebilirsiniz.
Özet
animation
özelliği, öğelerin stilini dinamik olarak değiştirmek için güçlü bir araçtır. @keyframes
kullanarak, stillerin zamanla nasıl değişeceğini tanımlayabilir ve animation
ın her alt özelliğiyle animasyonun detaylı davranışını kontrol edebilirsiniz.
transition
özelliği
1.transition-box {
2 background-color: lightgray;
3 transition: background-color 2s ease;
4}
5
6.transition-box:hover {
7 background-color: steelblue;
8}
9
10.transition-2-properties {
11 background-color: lightgray;
12 width: 150px;
13 height: 50px;
14 transition: background-color 5s ease, width 0.5s ease-in;
15}
16
17.transition-2-properties:hover {
18 background-color: blue;
19 width: 250px;
20}
transition
özelliği, CSS stil değişikliklerine animasyon efektleri uygulamak için kullanılır. Bu, hover
, focus
, active
gibi durum değişiklikleri veya JavaScript tarafından dinamik olarak değiştirilen stiller sırasında değişikliklerin düzgün bir şekilde görünmesini sağlar.
transition-box
sınıfının, bir düğmenin üzerine gelindiğinde arka plan renginin yumuşak bir şekilde değiştiği bir örneğe bakalım.
- transition-box
sınıfında, transition
özelliği arka plan rengindeki değişime 2 saniyelik bir geçiş uygular. Değişim ease
olarak belirtilmiştir, bu da onu yumuşak hale getirir.
- hover
pseudo-class, farenin düğmenin üzerinde olduğu durumda arka plan rengini lightgray
dan steelblue
ya değiştirir. Bu değişiklik, transition-box
sınıfında belirtilen 2 saniye içinde yumuşak bir şekilde gerçekleşir.
transition
ı aynı anda birden fazla özelliğe uygulamak mümkündür.
- transition-2-properties
sınıfı örneğinde, arka plan rengi 5 saniyede değişirken genişlik 0.5 saniyede değişir.
Temel Sözdizimi
1/* Basic syntax of transition */
2transition: property duration timing-function delay;
property
hangi CSS özelliklerine animasyonun uygulanacağını belirtir.all
belirtildiğinde animasyon tüm özelliklere uygulanır.duration
animasyonun tamamlanması için gereken süreyi belirtir. Saniye (s
) veya milisaniye (ms
) kullanarak belirtin.timing-function
animasyonun hızındaki değişikliği belirtir.ease
,linear
,ease-in
,ease-out
,ease-in-out
gibi seçenekler kullanabilirsiniz.delay
animasyon başlamadan önceki gecikme süresini belirtir. Saniye veya milisaniye cinsinden belirtin.
transition
'ın detaylı özellikleri
1/* Detailed properties of transition */
2transition-property: background-color;
3transition-duration: 0.3s;
4transition-timing-function: ease;
5transition-delay: 500ms;
transition
aşağıdaki gibi bireysel özellikler olarak da kullanılabilir.
transition-property
: Animasyonun uygulandığı özelliği belirtir.transition-duration
: Animasyonun tamamlanma süresini belirtir.transition-timing-function
: Animasyonun hız değişimini belirtir.ease
,linear
,ease-in
,ease-out
,ease-in-out
gibi seçenekler kullanılabilir.transition-delay
: Animasyon başlamadan önceki gecikme süresini belirtir.
Yukarıdaki makaleyi, YouTube kanalımızda Visual Studio Code'u kullanarak takip edebilirsiniz. Lütfen YouTube kanalını da kontrol edin.