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ındanslideyazılmış veslideadı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-slidesınıfında,animationözelliği 3 saniyelik aralıklarlaslideanimasyonunu 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,
from0%ile eşdeğerdir veto100%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-outsınıfı,animation-nameolarakslideı belirtir ve@keyframesiçinde tanımlananslideanimasyonunu kullanır.3s, her animasyon döngüsünün 3 saniyede tamamlandığını belirtenanimation-durationdır.ease-in-out, animasyonun yavaş başlamasını, hızlanmasını ve sonunda tekrar yavaşlamasını sağlayananimation-timing-functiondır.infinite, animasyonun sonsuza kadar tekrarlanacağını belirtenanimation-iteration-counttı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-alternatesınıfı,animation-nameolarakcolor-changei belirtir ve@keyframesiçinde tanımlanancolor-changeanimasyonunu kullanır.ease-in-outardından gelen1s, animasyon başlamadan önceki gecikmeyi belirtenanimation-delaydır. Animasyon 1 saniye sonra başlayacaktır.1sardından gelen3, animasyonun 3 kez tekrarlanacağı anlamına gelenanimation-iteration-counttır.alternate, animasyonun oynatma yönünü belirtenanimation-directiondı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.@keyframesiç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-outgibi değerler kullanılır.easebelirtmek, animasyonun yavaş başlamasını, hızlanmasını ve sonunda tekrar yavaşlamasını sağlar.linearbelirtmek, animasyonun baştan sona sabit bir hızla ilerlemesini sağlar.ease-inbelirtmek, animasyonun yavaş başlayıp hızlı bitmesini sağlar.ease-outbelirtmek, animasyonun hızlı başlayıp yavaş bitmesini sağlar.ease-in-outbelirtmek, 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.infinitebelirtmek, 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,backwardsveyabothseçeneklerinden birini belirtebilirsiniz.animation-play-stateözelliği, animasyonun çalışır durumda mı yoksa duraklatılmış mı olduğunu belirtir.runningveyapausedolarak 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 lightgraydan steelblueya 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;propertyhangi CSS özelliklerine animasyonun uygulanacağını belirtir.allbelirtildiğinde animasyon tüm özelliklere uygulanır.durationanimasyonun tamamlanması için gereken süreyi belirtir. Saniye (s) veya milisaniye (ms) kullanarak belirtin.timing-functionanimasyonun hızındaki değişikliği belirtir.ease,linear,ease-in,ease-out,ease-in-outgibi seçenekler kullanabilirsiniz.delayanimasyon 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-outgibi 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.