Artikel Copas 100%

Berbagi seadaanya.

Select Menu
  • Home
  • Blogging
    • Tutorial Blogspot
    • CSS
    • jQuery
    • Widget
  • Tools
    • Font Awesome
    • HTML Editor
    • HTML Encrypter
    • Code Color
    • Responsive Cek
  • Sitemap
  • Static Page
  • Error Page
Home » CSS » Contoh Pseudo-Elements Animasi dan Transisi

Sabtu, 22 Maret 2014

Contoh Pseudo-Elements Animasi dan Transisi

Add Comment
CSS
Kita akan berbicara sedikit tentang pseudo-elemen dan melihat empat contoh yang menggunakan beberapa teknik khusus untuk mencapai berbagai efek. Empat contoh berikut diciptakan untuk topik tertentu. Hal ini jelas bahwa ada cara lain untuk mencapai efek visual yang sama, tetapi untuk kepentingan percobaan ini, kita tentu saja akan menggunakan pseudo-elemen jadi di ingat bahwa ini hanya bekerja pada browser yang mendukung animasi dan transisi pseudo-elemen.

Contoh 1

Animasi setetes air yang jatuh ke dalam wadah bulat
Markup HTML
<div class="drop"> </div>
Meskipun hanya memiliki satu unsur tapi bisa memiliki .container lain yang membantu perubahan skala.
CSS
*,
*:before,
*:after {
box-sizing: border-box;
}

.drop {
background: rgba(255, 255, 245, 1);
border: 4px solid rgba(255, 245, 235, 1);
border-radius: 100%;
box-shadow: inset -0.1em 0 2em 0.5em rgba(255, 255, 255, 0.5),
inset -0.1em 0 0.5em 0 rgba(0, 0, 0, 0.8);
position: relative;
margin: 0 auto;
width: 15em;
height: 15em;
overflow: hidden;
}

.drop:before,
.drop:after {
content:"";
display:block;
position:absolute;
}

/* Drop */

.drop:before {
background: rgba(167, 217, 234, 1);
border-radius: 100%;

/* Drop start */

box-shadow: 0 0 0 0.1em rgba(167, 217, 234, 0.8),
0 0 0 0.15em rgba(167, 217, 234, 0.8),
0 0 0 0.2em rgba(167, 227, 234, 0.8),
0 0 0 0.25em rgba(167, 227, 234, 0.8),
0 0 0 0.3em rgba(167, 227, 234, 0.8),
0 0 0 0.35em rgba(167, 227, 234, 0.8),
0 0 0 0.4em rgba(167, 227, 234, 0.8),
0 0 0 0.45em rgba(167, 227, 234, 0.8),
0 0 0 0.5em rgba(167, 227, 234, 0.8);
top: 0%; left: 50%;

/* The "width" and "height" of the division must be smaller than the "box-shadow" total size. So we can control different variant sizes. */

width: 0.2em;
height: 0.2em;
animation: fall 3.5s cubic-bezier(0.5, 0, 1, 0.5) infinite;
}

/* Surface */

.drop:after {
background: rgb(52, 152, 219);
background: linear-gradient(rgba(52, 255, 255, 1) 0%, rgba(52, 152, 219, 1) 10%, rgba(152, 252, 219, 1) 100%);
border-radius: 100% 0 50% 0;
left: 0;
bottom: 0;
width: inherit;
height: 3em;
opacity: 0.7;
animation: surface 3s linear infinite;
}

/* Drop animation */

@keyframes fall {

/* Drop form */

5%, 15% {
box-shadow: 0 -1.4em 0 0.1em rgba(167, 217, 234, 1),
0 -0.8em 0 0.15em rgba(167, 217, 234, 1),
0 -0.3em 0 0.2em rgba(167, 217, 234, 1),
0 -0.1em 0 0.25em rgba(167, 217, 234, 1),
0 0 0 0.3em rgba(167, 217, 234, 1),
0 0.2em 0 0.35em rgba(167, 217, 234, 1),
0 0.4em 0 0.4em rgba(167, 217, 234, 1),
0 0.6em 0 0.45em rgba(167, 217, 234, 1),
0 0.8em 0 0.5em rgba(167, 217, 234, 1);
}

/* Drop fall */

16% {
top: 80%;
}

/* Contact surface */

18% {
top: 80%;
box-shadow: 1em -8em 0 0.2em rgba(177, 227, 234, 1),
-2.2em -3.8em 0 0.1em rgba(177, 227, 234, 1),
3em -2.85em 0 0.3em rgba(177, 227, 234, 1),
-3.5em -4em 0 0.2em rgba(177, 227, 234, 1),
0 0 0 0.3em rgba(177, 227, 234, 1),
2em -2em 0 0.2em rgba(177, 227, 234, 1),
-0.3em -3em 0 0.2em rgba(177, 227, 234, 1),
0.5em -5em 0 0.35em rgba(177, 227, 234, 1),
-3em -1em 0 0.3em rgba(177, 227, 234, 1);
}

/* Dispersion */

30% {
top: 90%;
box-shadow: 1.5em 0 0 0.2em rgba(252, 252, 255, 0.1),
-2em 0 0 0.15em rgba(252, 252, 255, 0.1),
3em 0 0 0.2em rgba(252, 252, 255, 0.1),
-2em 0 0 0.25em rgba(252, 252, 255, 0.1),
0 0 0 0.2em rgba(252, 252, 255, 0.1),
2.35em 0 0 0.3em rgba(252, 252, 255, 0.1),
-0.5em 0 0 0.2em rgba(252, 252, 255, 0.1),
1em 0 0 0.3em rgba(252, 252, 255, 0.1),
-4em 0 0 0.4em rgba(252, 252, 255, 0.1);
}

/* Hidden */

40%, 100% {
top: 95%;
background: rgba(255, 255, 255, 1);
box-shadow: 1.8em 0.5em 0 0.2em rgba(255, 255, 255, 0),
-3em 0.5em 0 0.1em rgba(255, 255, 255, 0),
4em 0.5em 0 0.1em rgba(255, 255, 255, 0),
-3.5em 0.5em 0 0.1em rgba(255, 255, 255, 0),
0 0 0 0.3em rgba(255, 255, 215, 0),
2.45em 0.5em 0 0.1em rgba(255, 255, 255, 0),
-0.8em 0.5em 0 0.2em rgba(255, 255, 255, 0),
1.5em 0.5em 0 0.3em rgba(255, 255, 255, 0),
-4.5em 0.5em 0 0.2em rgba(255, 255, 255, 0);
}
}

/* Animation of water surface */

@keyframes surface {
50% {
border-radius: 0 75% 0 75%;
opacity: 0.5;
height: 3.5em;
}
}
Berikut adalah dua tips untuk mendapatkan animasi lebih naturalistik:
  • Menonton dan menganalisa referensi seperti gambar, video, dll
  • Percobaan dengan kecepatan yang berbeda untuk transisi properti CSS dan keyframes.
Lebih lanjut tentang menghidupkan karakter langsung saja ke masternya "The Animator Survival Kit" oleh Richard Williams .

Contoh 2

Dalam contoh ini kita akan membuat efek hover dengan menggunakan transisi.
Markup HTML
<div class="circle">
<h1>Anarchyta</h1>
</div>
Di sini hanya memiliki .container dan judul untuk memisahkan teks dari yang lain.
CSS
.circle {
background: rgb(255,255,255);
border-radius: 100%;
cursor: pointer;
position: relative;
margin: 0 auto;
width: 15em;
height: 15em;
overflow: hidden;
transform: translateZ(0);
}

.circle h1 {
color: rgba(189, 185, 199,0);
font-family: 'Lato', sans-serif;
font-weight: 900;
font-size: 1.6em;
line-height: 8.2em;
text-align: center;
text-transform: uppercase;
-webkit-font-smoothing: antialiased;
user-select: none;
transition: color 0.8s ease-in-out;
}

.circle:before,
.circle:after {
border-radius: 100%;
content:"";
position: absolute;
top: 0;
left: 0;
width: inherit;
height: inherit;
box-shadow: inset 10.6em 0 0 rgba(30, 140, 209, 0.2),
inset 0 10.6em 0 rgba(30, 140, 209, 0.2),
inset -10.6em 0 0 rgba(30, 140, 209, 0.2),
inset 0 -10.6em 0 rgba(30, 140, 209, 0.2);
transition: box-shadow 0.75s;
}

/* We rotate the :after pseudo-element to get the edge from the corner, we could also just do that with box-shadows. */

.circle:after {
transform: rotate(45deg);
}

/* There is no problem using "pseudo-class + pseudo-element" :) */

.circle:hover:before,
.circle:hover:after {
box-shadow: inset 0.86em 0 0 rgba(255, 0, 0, 0.5),
inset 0 0.86em 0 rgba(252, 150, 0, 0.5),
inset -0.86em 0 0 rgba(0, 255, 0, 0.5),
inset 0 -0.86em 0 rgba(0, 150, 255, 0.5);
}

.circle:hover > h1 {
color: rgba(185, 185, 185,1);
}
Anda harus menggunakan hanya satu warna, untuk menghindari pencampuran warna yang tidak diinginkan dengan (.overlay ketika memicu hover / mengarahkan mouse pada object.

Contoh 3

Loading Animasi, Idenya di sini adalah untuk menggabungkan warna melalui rotasi. Ini sangat sederhana!
Markup HTML
Cukup menggunakan satu elemen tunggal untuk HTML ini.
<div class="loading"></div>
CSS
.loading  {
background: rgba(0, 50, 250, 0);
position: relative;
margin: 5em auto 0 auto;
width: 3em;
height: 3em;
animation-name:rotate;
}

.loading,
.loading:before,
.loading:after {
border-radius: 100%;
animation-duration: 3s;
animation-iteration-count: infinite;
animation-timing-function: ease-in;
}

.loading:before,
.loading:after {
content: "";
position: absolute;
top: 0;
left: 0;
width: inherit;
height: inherit;
}

.loading:before {
background: rgba(200, 250, 100, 0);
animation-name: ring;
}

.loading:after {
background: rgba(250, 0, 200, 0);
animation-name: ring2;
}

@keyframes rotate {
0% {
transform: rotateZ(0deg) scaleX(0.1) scaleY(0.1) translateZ(0);
box-shadow: inset 0.8em 0 0 rgba(255, 0, 0, 0.5),
inset 0 0.8em 0 rgba(252, 150, 0, 0.5),
inset -0.8em 0 0 rgba(0, 255, 0, 0.5),
inset 0 -0.8em 0 rgba(0, 150, 255, 0.5);
}

/* hidden */

85%, 100% {

/* 360deg * 10 */

transform: rotateZ(3600deg) scaleX(2.01) scaleY(2) translateZ(0);
box-shadow: inset 0 0 0 rgba(255, 0, 0, 0),
inset 0 0 0 rgba(252, 150, 0, 0),
inset 0 0 0 rgba(0, 255, 0, 0),
inset 0 0 0 rgba(0, 150, 255, 0);
}
}

@keyframes ring {
0% {
transform: scaleX(0.1) scaleY(0.5);
box-shadow: inset 0.8em 0 0 rgba(255, 0, 0, 0.5),
inset 0 0.8em 0 rgba(252, 150, 0, 0.5),
inset -0.8em 0 0 rgba(0, 255, 0, 0.5),
inset 0 -0.8em 0 rgba(0, 150, 255, 0.5);
}

/* hidden */

75%, 100% {
transform: scaleX(2) scaleY(2.1);
box-shadow: inset 0 0 0 rgba(255, 0, 0, 0),
inset 0 0 0 rgba(252, 150, 0, 0),
inset 0 0 0 rgba(0, 255, 0, 0),
inset 0 0 0 rgba(0, 150, 255, 0);
}
}

@keyframes ring2 {
0% {
transform: scaleX(0.5) scaleY(0.1);
box-shadow: inset 0.8em 0 0 rgba(255, 0, 0, 0.5),
inset 0 0.8em 0 rgba(252, 150, 0, 0.5),
inset -0.8em 0 0 rgba(0, 255, 0, 0.5),
inset 0 -0.8em 0 rgba(0, 150, 255, 0.5);
}

/* hidden */

65%, 100% {
transform: scaleX(2) scaleY(2.1);
box-shadow: inset 0 0 0 rgba(255, 0, 0, 0),
inset 0 0 0 rgba(252, 150, 0, 0),
inset 0 0 0 rgba(0, 255, 0, 0),
inset 0 0 0 rgba(0, 150, 255, 0);
}
}
Ini adalah contoh yang bagus untuk bereksperimen dengan timing dan kecepatan untuk mendapatkan animasi yang baik.

Contoh 4

Ini adalah contoh yang paling Edan dari semua: sedikit makhluk terbang bermata satu!
Kita akan menggunakan keduanya, animasi dan transisi.
Markup HTML
Arahkan mouse pada mata pojoro untuk melihat animasi sayap.
<div class="pojoro">?</div>
CSS
.pojoro  {
background: rgba( 255, 255, 255, 1);
background: radial-gradient(ellipse at center, rgba(255,255,255,1) 40%,rgba(51,51,51,1) 100%);
border-radius: 100%;

/* box-shadow: secondary color, body, eyelash */

box-shadow: 0 0 0 0.2em rgb(146,89,149),
0 0 0.1em 0.55em rgb(176,89,179),
inset 0 0.2em 0 0 rgb(136,79,139);

/* ojo (eye) */

color: rgba( 40, 40, 40, 0.8);
line-height: 1.1em;
padding-left: 0.18em;
-webkit-font-smoothing: antialiased;
user-select: none;

/* usability, position and transition */

cursor: pointer;
position: relative;
margin: 5em auto 0 auto;
width: 1em; height: 1em;
transform-origin: center;
transition: all 0.8s ease-in-out;

/* Separate the animations to have a better control over the eye and the body */

animation: eye 2.2s ease-in-out infinite, body 1.15s 1.8s linear infinite;
}

/* Elevate and distort the creature. */

.pojoro:hover {
transform: scaleY(0.9) scaleX(0.95) translateY(-3em) translateZ(0);
}

/* wings */

.pojoro:before,
.pojoro:after {
background: rgba(0,0,0,0);
border-radius: 100%;
content: "";

/* display:none, hide wings */

display: none;
position: absolute;
width: 1em; height: 0.1em;
-webkit-filter: blur(1px);
transition: all 0.2s;
animation-duration: 0.2s;
animation-iteration-count: infinite;
animation-timing-function: ease-in-out;
}

.pojoro:before {
top: 25%; left: 1.45em;
margin-left: -1em;
transform-origin: left;
transform: rotate(-60deg);
animation-name: wings;
}

.pojoro:after {
top: 25%; left: -2.2em;
margin-left: 1em;
transform-origin: right;
transform: rotate(60deg);
animation-name: wings2;
}

.pojoro:hover:before,
.pojoro:hover:after {
background: rgba(100,100,100,0.8);

/* display:block, we allow the wings to appear and the animation starts */

display: block;
margin-left: 0em;
width: 2em; height: 0.3em;
}

@keyframes eye {

/* Eye movement */

5%, 10% {
line-height: 1.2em;
padding-left: 0em;
}
15%, 20% {
line-height: 1.15em;
padding-left: 0.4em;
}

/* Eyelash movement */

25% {
box-shadow: 0 0 0 0.2em rgb(146,89,149),
0 0 0.1em 0.55em rgb(166,89,169),
inset 0 1em 0 0 rgb(136,79,139);
}
23%, 27% {
box-shadow: 0 0 0 0.2em rgb(146,89,149),
0 0 0.1em 0.55em rgb(166,89,169),
inset 0 0.2em 0 0 rgb(136,79,139);
}
}

@keyframes body {
50% {
width: 1.4em; height: 1.4em;
}
}

@keyframes wings {
50% {
transform: rotate(65deg);
}
}

@keyframes wings2 {
50% {
transform: rotate(-65deg);
}
}
Dan itu adalah contoh terakhir!

Kesimpulannya, adalah hal besar untuk menggabungkan Pseudo-Elements dengan animasi dan transisi memungkinkan untuk menciptakan beberapa efek yang menyenangkan tanpa menggunakan terlalu banyak HTML atau gambar. Sampai kemudian kita bisa bermain dengan Pseudo-Elements dan menemukan teknik yang menarik.

Apa pendapat Anda tentang hal ini?
Suka Artikel? Bagikan: Facebook Twitter Google+
0 Komentar untuk "Contoh Pseudo-Elements Animasi dan Transisi"

Posting Lebih Baru Posting Lama Beranda
Langganan: Posting Komentar (Atom)

Popular Week

  • EDU Backlink
    EDU Backlink
    Backlink .EDU sekarang ini masih menjadi incaran bagi para blogger untuk menaikkan ranking situs/blog mereka, tapi kadang-kadang kita meras...
  • Bosan Dengan Dunia Blogger..
    Bosan Dengan Dunia Blogger..
    Selamat pagi sobat semua.. Mungkin anda sudah merasakan suatu kejenuhan yang anda alami saat ini dengan blog anda mungkin pertama anda membu...
  • About This Tattoo
    About This Tattoo
    Apa itu Tattoo? Dalam Bahasa Indonesia disebut dengan istilah "Rajah". Tattoo merupakan produk dari Body Decorating dengan mengga...
  • Opini Tentang Blog Ini
    Opini Tentang Blog Ini
    Sejauh ini saya sudah merasa bersalah dengan apa yang saya share.  Beberapa hal gak penting terkadang juga saya share sampai sampai sobat bi...
  • Optimasi Posting Blog
    Optimasi Posting Blog
    Yang namanya sebuah blog, tentu tidak terlepas dari posting. Posting dalam blogger merupakan sebuah "entry" yang ditulis dengan me...
  • 7 Apps Android Untuk Pengguna Blogger
    7 Apps Android Untuk Pengguna Blogger
    Dibawah ini adalah 7 AplikasiAdroid yang populer dan banyak digunakan oleh pengguna Blogger. Dan sebagai seorang pengguna blogger tidak ada ...
  • Menampilkan Pesan Pada Jam Tertentu
    Menampilkan Pesan Pada Jam Tertentu
    Pernah terpikirkan untuk menampilkan pesan pada jam tertentu (Time Message) pada blog kita? tentu saja ya, Ada kalanya ketika sedang tidak o...
  • Free Download Smadav 9.3 Pro Full Version + Serial Number
    Free Download Smadav 9.3 Pro Full Version + Serial Number
    Semenjak Blogger saya di hapus saya jarang update di Faceblog jadi ketinggalan software yang sudah update deh, tapi gak apa apa daripada g...
  • Banned Spammer di Komentar Blog
    Banned Spammer di Komentar Blog
    Beberapa teman saya bertanya bagaimana cara menghentikan spammer di Blog.. Artikel ini saya dapat dari master tuts tahun lalu, javascript in...
  • Scattered Polaroids Gallery (Tersebar)
    Scattered Polaroids Gallery (Tersebar)
    Sebuah flat bergaya Polaroid Galeri di mana item-item (di sini saya gunakan foto) yang tersebar secara acak dalam sebuah wadah (Container). ...
Diberdayakan oleh Blogger.

Labels

  • Android
  • Blogging
  • CSS
  • Facebook
  • Game
  • jQuery
  • Komputer
  • Lain-Lain
  • Photoshop
  • SEO
  • Software
  • Template
  • Twitter
  • Widget

Blog Archive

  • ▼  2014 (101)
    • ►  Juli (5)
    • ►  Juni (10)
    • ►  Mei (12)
    • ►  April (12)
    • ▼  Maret (11)
      • Metode Sederhana Membuat Menu Navigasi yang Responsif
      • Pocong Jumping di Android
      • Contoh Pseudo-Elements Animasi dan Transisi
      • Subculture Responsive Blogger Template Valid HTML5...
      • Membuat Blog Valid CSS3
      • Fianetcakep Responsive Blogger Template
      • Cara Membuat Efek Loading Dengan Animasi Keyframes
      • Avira 2014 14.0.3.350
      • Membuat Thumbnail Post Berwarna
      • Sliding Image Panel With CSS3
      • Menampilkan Pesan Jika Kode Tertentu dihapus dari ...
    • ►  Februari (14)
    • ►  Januari (37)
  • ►  2013 (71)
    • ►  Desember (13)
    • ►  November (6)
    • ►  Agustus (1)
    • ►  Juni (8)
    • ►  Mei (33)
    • ►  April (10)

Labels

  • Android
  • Blogging
  • CSS
  • Facebook
  • Game
  • jQuery
  • Komputer
  • Lain-Lain
  • Photoshop
  • SEO
  • Software
  • Template
  • Twitter
  • Widget

Labels

  • Android
  • Blogging
  • CSS
  • Facebook
  • Game
  • jQuery
  • Komputer
  • Lain-Lain
  • Photoshop
  • SEO
  • Software
  • Template
  • Twitter
  • Widget

About Me

Unknown
Lihat profil lengkapku or visit on

© Artikel Copas 100% powered by Blogger.com.
All Right Reserved.