Cataloged Autobiography BERKENAAN SAYA Hello. Saya adalah self-taught web designer yang banyak menghabiskan masa meneroka penggunaan CSS dan HTML. Blogging hanyalah hobi. Teruskan membaca.. | The Readable Journal MENEROKA ARTIKEL Teroka artikel berhubung dengan tutorial, contoh dan penggunaan CSS dan HTML dalam web design di ruang ini. Web design menyeronokan. Ke tutorial...Klik sini | Astrolab Tool KATEGORI ARTIKEL Suatu sistem yang berfungsi untuk membantu menjelajahi topik-topik terkait dan menyenaraikan pelbagai sub-bahagian artikel...Klik sini |
BINA IKLAN DENGAN CSS3 |
August 6, 2010 Posted by: Fauzie |
Telah banyak diperkatakan tentang kebolehan CSS3 dan untuk artikel kali ini jom kita lihat kehebatan CSS3 ini dan juga HTML5 berhubung dengan membina iklan yang biasanya menggunakan Flash dan Javascript.
Contoh yang ditunjukkan dalam tutorial ini adalah contoh iklan yang telah dibina oleh Sencha.com dengan menggunakan CSS3 dan dibandingkan dengan contoh iklan yang dibina menggunakan Javascript dan Flash. Sila lawat Sencha.com untuk mengetahuinya dengan lebih lanjut.
Contoh yang ditunjukkan dalam tutorial ini adalah contoh iklan yang telah dibina oleh Sencha.com dengan menggunakan CSS3 dan dibandingkan dengan contoh iklan yang dibina menggunakan Javascript dan Flash. Sila lawat Sencha.com untuk mengetahuinya dengan lebih lanjut.
Bagi membuat iklan seperti ini, “webkit animation properties” banyak digunakan (dan untuk melihatnya dengan lebih berkesan anda perlu menggunakan browser Safari atau Google Chrome.
Live Demo: Iklan menggunakan CSS3
Pay for standard.
Drive off in premium.
Get a free double upgrade
on Hertz weekend rentals.
on Hertz weekend rentals.
Plus your regular
AAA discount.
AAA discount.
Book Now
AAA Members:
Free double upgrade
on Hertz rentals
Free double upgrade
on Hertz rentals
Nota:Hanya sesuai dilihat dengan browser Safari dan Chrome sahaja
Di bawah ini ialah contoh kod asas untuk animasi di atas:
“-webkit-animation-name: slideAnimation” merujuk kepada nama animasi
“-webkit-animation-duration: 10s” merujuk kepada lamanya animasi ini dan,
“-webkit-animation-iteration-count: 1” merujuk kepada berapa kali anda iklan ini animated. Dalam kod contoh ini ialah 1 kali. (contoh iklan di atas menggunakan 3 “count” iaitu, iklan akan berulang sebanyak 3 kali).
Kod-kod Webkit yang digunakan untuk mendapatkan effect contoh iklan di atas.
#objectIdToAnimate {
-webkit-animation-name: slideAnimation;
-webkit-animation-duration: 10s;
-webkit-animation-iteration-count: 1;
}
@-webkit-keyframes slideAnimation {
0% { -webkit-transform: translateX(130px); }
100% { -webkit-transform: translateX(0); }
}
-webkit-animation-name: slideAnimation;
-webkit-animation-duration: 10s;
-webkit-animation-iteration-count: 1;
}
@-webkit-keyframes slideAnimation {
0% { -webkit-transform: translateX(130px); }
100% { -webkit-transform: translateX(0); }
}
Animasi untuk teks
Teks tidak bergerak. Untuk membuat ia kelihatan seperti bergerak, programmer telah menggunakan “opacity” keatas teks bagi menampakkan ia seolah-olah “fading”
Di bawah ini adalah animation kod yang telah digunakan:
@-webkit-keyframes text1 {
0% { opacity: 0; }
6% { opacity: 0; }
8% { opacity: 1; }
24% { opacity: 1; }
28% { opacity: 0; }
100% { opacity: 0; }
}
0% { opacity: 0; }
6% { opacity: 0; }
8% { opacity: 1; }
24% { opacity: 1; }
28% { opacity: 0; }
100% { opacity: 0; }
}
Animasi gambar kereta.
Dua animasi telah digunakan untuk gambar kereta: 1. bouncing effect dan 2. sliding effect
Di bawah ini adalah CSS keyframes untuk effect bouncing:
@-webkit-keyframes text1 {@-webkit-keyframes bounceAnimation {
0% { -webkit-transform: scale(0.2); }
3% { -webkit-transform: scale(0.57); }
4.5% { -webkit-transform: scale(0.42); }
5.5% { -webkit-transform: scale(0.50); }
6% { -webkit-transform: scale(0.48); }
25% { -webkit-transform: scale(0.48); }
28% { -webkit-transform: scale(1.2); }
29.5% { -webkit-transform: scale(0.9); }
30.5% { -webkit-transform: scale(1.05); }
31.0% { -webkit-transform: scale(1); }
100% { -webkit-transform: scale(1); }
}
0% { -webkit-transform: scale(0.2); }
3% { -webkit-transform: scale(0.57); }
4.5% { -webkit-transform: scale(0.42); }
5.5% { -webkit-transform: scale(0.50); }
6% { -webkit-transform: scale(0.48); }
25% { -webkit-transform: scale(0.48); }
28% { -webkit-transform: scale(1.2); }
29.5% { -webkit-transform: scale(0.9); }
30.5% { -webkit-transform: scale(1.05); }
31.0% { -webkit-transform: scale(1); }
100% { -webkit-transform: scale(1); }
}
Ini pula ialah kod untuk “sliding effect”
@-webkit-keyframes slideAnimation {
0% { -webkit-transform: translateX(-130px); }
55% { -webkit-transform: translateX(-130px); }
66% { -webkit-transform: translateX(0); }
100% { -webkit-transform: translateX(0); }
}
0% { -webkit-transform: translateX(-130px); }
55% { -webkit-transform: translateX(-130px); }
66% { -webkit-transform: translateX(0); }
100% { -webkit-transform: translateX(0); }
}
Animasi Butang (button)
Jika anda perhatikan butang “Buy Now”, ia masuk ke bahagian kotak iklan secara “sliding” dan effect ini menggunakan teknik animasi yang sama dengan image kereta.
Apabila anda hover mouse pada butang ini, anda akan dapati warna tulisan akan berubah. Animasi ini terjadi dengan menggunakan webkit property “-webkit-transformproperty” . Disamping itu terdapat juga “shine effect” (kilauan), bergerak dari kiri ke kanan. Ini juga dapat dibuat dengan hanya menggunakan kod-kod CSS seperti ini:
#button:hover {
background: -webkit-gradient(
linear,
left top,
right 50,
color-stop(0.45, #1D5365),
color-stop(0.5, #338DAD),
color-stop(0.55, #1D5365));
background-position: left top;
-webkit-background-size: 300px 22px;
-webkit-animation-name: backgroundShine;
-webkit-animation-duration: 0.3s;
-webkit-animation-iteration-count: 1;
-webkit-animation-timing-function: linear;
}
@-webkit-keyframes backgroundShine {
0% { background-position: right top; }
100% { background-position: left top; }
}
background: -webkit-gradient(
linear,
left top,
right 50,
color-stop(0.45, #1D5365),
color-stop(0.5, #338DAD),
color-stop(0.55, #1D5365));
background-position: left top;
-webkit-background-size: 300px 22px;
-webkit-animation-name: backgroundShine;
-webkit-animation-duration: 0.3s;
-webkit-animation-iteration-count: 1;
-webkit-animation-timing-function: linear;
}
@-webkit-keyframes backgroundShine {
0% { background-position: right top; }
100% { background-position: left top; }
}
Sekarang jom kita lihat kod-kod CSS dan markup dan anda boleh mencuba dengan copy & paste kod-kod seperti di bawah ini dalam notepad. Sila save dengan memberi nama fail menggunakan extension .html(contoh: iklan.html) bukan extension text. Buka browser Safari, klik->File->Open File dan klik nama fail yang telah disimpan dalam Notepad.
<html>
<head>
<style type="text/css">
div.container1 {
float:left;
}
div.container2 {
margin-left: 336px;
}
#HEFlash {
margin: 0 0 12px;
}
#HEadContainer {
background-color: #FFD200;
border: 1px solid #999;
height:248px;
margin: 0 0 10px;
overflow:hidden;
position:relative;
width:300px;
}
#HEadContainer * {
font-family: Arial, "MS Trebuchet", sans-serif;
line-height: normal;
margin:0;
position:absolute;
padding:0;
}
#HEwhiteBox {
background-color:white;
height:55px;
top: 195px;
width:300px;
}
#HEwbText {
color: #2f4f76;
font-size: 11px;
top:8px;
left:12px;
width:120px;
}
#HEwbLogo {
left:135px;
top:4px;
}
#HEcar {
-webkit-animation-name: HEbounceA;
-webkit-animation-duration: 10s;
-webkit-animation-iteration-count: 3;
bottom: 0;
left:0;
height:130px;
-webkit-transform-origin: center bottom;
width:161px;
}
#HEcarSlider {
-webkit-animation-name: HEslideA;
-webkit-animation-duration: 10s;
-webkit-animation-iteration-count: 3;
bottom: 54px;
left:200px;
height:130px;
width:161px;
}
#HEcar img {
top:auto !important;
bottom:0px;
}
#HEadContainer:hover #HEcar img {
-webkit-animation-name: HEcarRumble;
-webkit-animation-duration: 0.3s;
-webkit-animation-iteration-count: 200;
}
@-webkit-keyframes HEcarRumble {
0% {-webkit-transform: translateY(0);}
50% {-webkit-transform: translateY(-1px);}
100% {-webkit-transform: translateY(0);}
}
@-webkit-keyframes HEbounceA {
0% {-webkit-transform: scale(0.2);}
3% {-webkit-transform: scale(0.53);}
4.5% {-webkit-transform: scale(0.38);}
5.5% {-webkit-transform: scale(0.46);}
6% {-webkit-transform: scale(0.44);}
25% {-webkit-transform: scale(0.44);}
28% {-webkit-transform: scale(1.2);}
29.5% {-webkit-transform: scale(0.9);}
30.5% {-webkit-transform: scale(1.05);}
31.0% {-webkit-transform: scale(1);}
100% {-webkit-transform: scale(1) translateX(0);}
}
@-webkit-keyframes HEslideA {
0% {-webkit-transform:translateX(-130px);}
55% {-webkit-transform:translateX(-130px);}
66% {-webkit-transform:translateX(0);}
100% {-webkit-transform:translateX(0);}
}
/*Main Text*/
#HEtext * {
color: black;
font-size: 17px;
width:250px;
}
#HEtext1,#HEtext2 {
top:20px;
left:20px;
opacity:0;
filter: alpha(opacity = 0);
}
#HEtext1 p {
font-size:20px;
}
#HEtext2 p {
font-size:20px;
}
#HEtext3 p {
font-size:18px;
}
#HEtext1 {
-webkit-animation-name: HEtext1;
-webkit-animation-duration: 10s;
-webkit-animation-iteration-count: 3;
}
#HEtext2 {
-webkit-animation-name: HEtext2;
-webkit-animation-duration: 10s;
-webkit-animation-iteration-count: 3;
}
#HEtext3 {
-webkit-animation-name: HEtext3;
-webkit-animation-duration: 10s;
-webkit-animation-iteration-count: 3;
top:24px;
left:20px;
}
#HEtext3b {
top:48px;
}
#HEbutton {
background-color:#338dad;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
height:22px;
top:103px;
width:95px;
}
#HEbuttonslide {
-webkit-animation-name: HEbuttonslide;
-webkit-animation-duration: 10s;
-webkit-animation-iteration-count: 1;
}
#HEbutton p {
color:white;
font-size: 14px;
padding:3px 0 0 10px;
-webkit-transition-property: color;
-webkit-transition-duration: 0.2s;
}
#HEbutton img {
height:13px;
top:5px;
left:78px;
width:12px;
}
#HEbutton #HEnextY {
opacity:0;
-webkit-transition-property: opacity;
-webkit-transition-duration: 0.2s;
}
#HEbutton:hover p {
color:#FFD200;
}
#HEbutton:hover #HEnextY {
opacity:1;
}
#HEbutton:hover {
background: -webkit-gradient(
linear,
left top,
right 50,
color-stop(0.45, #1D5365),
color-stop(0.5, #338dad),
color-stop(0.55, #1D5365)
);
-webkit-background-size: 300px 22px;
background-position: left top;
-webkit-animation-name: HEback2A;
-webkit-animation-duration: 0.3s;
-webkit-animation-iteration-count: 1;
-webkit-animation-timing-function:linear;
}
@-webkit-keyframes HEback2A {
0% {background-position: right top;}
100% {background-position: left top;}
}
@-webkit-keyframes HEtext1 {
0% {opacity:0;}
6% {opacity:0;}
8% {opacity:1;}
24% {opacity:1;}
28% {opacity:0;}
100% {opacity:0;}
}
@-webkit-keyframes HEtext2 {
0% {opacity:0;}
30.5% {opacity:0;}
32.5% {opacity:1;}
52% {opacity:1;}
55% {opacity:0;}
100% {opacity:0;}
}
@-webkit-keyframes HEtext2 {
0% {opacity:0;}
30.5% {opacity:0;}
32.5% {opacity:1;}
52% {opacity:1;}
55% {opacity:0;}
100% {opacity:0;}
}
@-webkit-keyframes HEtext3 {
0% {opacity:0;}
60% {opacity:0;}
63% {opacity:1;}
100% {opacity:1;}
}
@-webkit-keyframes HEbuttonslide {
0% {-webkit-transform:translateX(-100px);}
60% {-webkit-transform:translateX(-100px);}
62.8% {-webkit-transform:translateX(10px);}
63% {-webkit-transform:translateX(0);}
100% {-webkit-transform:translateX(0);}
}
</style>
</head>
<body>
<div class="container1">
<h3>Contoh iklan dibina menggunakan CSS</h3>
<div id="HEadContainer">
<div id="HEcarSlider">
<div id="HEcar">
<img src="http://www.sencha.com/deploy/css3-
ads/hertz/carbody.png ">
</div>
</div>
<div id="HEtext">
<div id="HEtext1">
<p>Pay for standard.</p>
</div>
<div id="HEtext2">
<p>Drive off in premium.</p>
</div>
<div id="HEtext3">
<div id="HEtext3a">
<p>Get a free double upgrade <br> on Hertz weekend
rentals.</p>
</div>
<div id="HEtext3b">
<p>Plus your regular <br> AAA discount.</p>
</div>
<div id="HEbuttonSlide">
<div id="HEbutton">
<p>Book Now</p> <img src="
http://www.sencha.com/deploy/css3-ads/hertz/next.png"> <img id='HEnextY'
src="http://www.sencha.com/deploy/css3-ads/hertz/nextY.png ">
</div>
</div>
</div>
</div>
<div id="HEwhiteBox">
<div id="HEwbText">
<p> AAA Members: <br> Free double upgrade <br> on Hertz
rentals </p>
</div>
<div id="HEwbLogo">
<img src="http://www.sencha.com/deploy/css3-
ads/hertz/logo.png ">
</div>
</div>
</div>
</div>
</body>
</html>
<head>
<style type="text/css">
div.container1 {
float:left;
}
div.container2 {
margin-left: 336px;
}
#HEFlash {
margin: 0 0 12px;
}
#HEadContainer {
background-color: #FFD200;
border: 1px solid #999;
height:248px;
margin: 0 0 10px;
overflow:hidden;
position:relative;
width:300px;
}
#HEadContainer * {
font-family: Arial, "MS Trebuchet", sans-serif;
line-height: normal;
margin:0;
position:absolute;
padding:0;
}
#HEwhiteBox {
background-color:white;
height:55px;
top: 195px;
width:300px;
}
#HEwbText {
color: #2f4f76;
font-size: 11px;
top:8px;
left:12px;
width:120px;
}
#HEwbLogo {
left:135px;
top:4px;
}
#HEcar {
-webkit-animation-name: HEbounceA;
-webkit-animation-duration: 10s;
-webkit-animation-iteration-count: 3;
bottom: 0;
left:0;
height:130px;
-webkit-transform-origin: center bottom;
width:161px;
}
#HEcarSlider {
-webkit-animation-name: HEslideA;
-webkit-animation-duration: 10s;
-webkit-animation-iteration-count: 3;
bottom: 54px;
left:200px;
height:130px;
width:161px;
}
#HEcar img {
top:auto !important;
bottom:0px;
}
#HEadContainer:hover #HEcar img {
-webkit-animation-name: HEcarRumble;
-webkit-animation-duration: 0.3s;
-webkit-animation-iteration-count: 200;
}
@-webkit-keyframes HEcarRumble {
0% {-webkit-transform: translateY(0);}
50% {-webkit-transform: translateY(-1px);}
100% {-webkit-transform: translateY(0);}
}
@-webkit-keyframes HEbounceA {
0% {-webkit-transform: scale(0.2);}
3% {-webkit-transform: scale(0.53);}
4.5% {-webkit-transform: scale(0.38);}
5.5% {-webkit-transform: scale(0.46);}
6% {-webkit-transform: scale(0.44);}
25% {-webkit-transform: scale(0.44);}
28% {-webkit-transform: scale(1.2);}
29.5% {-webkit-transform: scale(0.9);}
30.5% {-webkit-transform: scale(1.05);}
31.0% {-webkit-transform: scale(1);}
100% {-webkit-transform: scale(1) translateX(0);}
}
@-webkit-keyframes HEslideA {
0% {-webkit-transform:translateX(-130px);}
55% {-webkit-transform:translateX(-130px);}
66% {-webkit-transform:translateX(0);}
100% {-webkit-transform:translateX(0);}
}
/*Main Text*/
#HEtext * {
color: black;
font-size: 17px;
width:250px;
}
#HEtext1,#HEtext2 {
top:20px;
left:20px;
opacity:0;
filter: alpha(opacity = 0);
}
#HEtext1 p {
font-size:20px;
}
#HEtext2 p {
font-size:20px;
}
#HEtext3 p {
font-size:18px;
}
#HEtext1 {
-webkit-animation-name: HEtext1;
-webkit-animation-duration: 10s;
-webkit-animation-iteration-count: 3;
}
#HEtext2 {
-webkit-animation-name: HEtext2;
-webkit-animation-duration: 10s;
-webkit-animation-iteration-count: 3;
}
#HEtext3 {
-webkit-animation-name: HEtext3;
-webkit-animation-duration: 10s;
-webkit-animation-iteration-count: 3;
top:24px;
left:20px;
}
#HEtext3b {
top:48px;
}
#HEbutton {
background-color:#338dad;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
height:22px;
top:103px;
width:95px;
}
#HEbuttonslide {
-webkit-animation-name: HEbuttonslide;
-webkit-animation-duration: 10s;
-webkit-animation-iteration-count: 1;
}
#HEbutton p {
color:white;
font-size: 14px;
padding:3px 0 0 10px;
-webkit-transition-property: color;
-webkit-transition-duration: 0.2s;
}
#HEbutton img {
height:13px;
top:5px;
left:78px;
width:12px;
}
#HEbutton #HEnextY {
opacity:0;
-webkit-transition-property: opacity;
-webkit-transition-duration: 0.2s;
}
#HEbutton:hover p {
color:#FFD200;
}
#HEbutton:hover #HEnextY {
opacity:1;
}
#HEbutton:hover {
background: -webkit-gradient(
linear,
left top,
right 50,
color-stop(0.45, #1D5365),
color-stop(0.5, #338dad),
color-stop(0.55, #1D5365)
);
-webkit-background-size: 300px 22px;
background-position: left top;
-webkit-animation-name: HEback2A;
-webkit-animation-duration: 0.3s;
-webkit-animation-iteration-count: 1;
-webkit-animation-timing-function:linear;
}
@-webkit-keyframes HEback2A {
0% {background-position: right top;}
100% {background-position: left top;}
}
@-webkit-keyframes HEtext1 {
0% {opacity:0;}
6% {opacity:0;}
8% {opacity:1;}
24% {opacity:1;}
28% {opacity:0;}
100% {opacity:0;}
}
@-webkit-keyframes HEtext2 {
0% {opacity:0;}
30.5% {opacity:0;}
32.5% {opacity:1;}
52% {opacity:1;}
55% {opacity:0;}
100% {opacity:0;}
}
@-webkit-keyframes HEtext2 {
0% {opacity:0;}
30.5% {opacity:0;}
32.5% {opacity:1;}
52% {opacity:1;}
55% {opacity:0;}
100% {opacity:0;}
}
@-webkit-keyframes HEtext3 {
0% {opacity:0;}
60% {opacity:0;}
63% {opacity:1;}
100% {opacity:1;}
}
@-webkit-keyframes HEbuttonslide {
0% {-webkit-transform:translateX(-100px);}
60% {-webkit-transform:translateX(-100px);}
62.8% {-webkit-transform:translateX(10px);}
63% {-webkit-transform:translateX(0);}
100% {-webkit-transform:translateX(0);}
}
</style>
</head>
<body>
<div class="container1">
<h3>Contoh iklan dibina menggunakan CSS</h3>
<div id="HEadContainer">
<div id="HEcarSlider">
<div id="HEcar">
<img src="http://www.sencha.com/deploy/css3-
ads/hertz/carbody.png ">
</div>
</div>
<div id="HEtext">
<div id="HEtext1">
<p>Pay for standard.</p>
</div>
<div id="HEtext2">
<p>Drive off in premium.</p>
</div>
<div id="HEtext3">
<div id="HEtext3a">
<p>Get a free double upgrade <br> on Hertz weekend
rentals.</p>
</div>
<div id="HEtext3b">
<p>Plus your regular <br> AAA discount.</p>
</div>
<div id="HEbuttonSlide">
<div id="HEbutton">
<p>Book Now</p> <img src="
http://www.sencha.com/deploy/css3-ads/hertz/next.png"> <img id='HEnextY'
src="http://www.sencha.com/deploy/css3-ads/hertz/nextY.png ">
</div>
</div>
</div>
</div>
<div id="HEwhiteBox">
<div id="HEwbText">
<p> AAA Members: <br> Free double upgrade <br> on Hertz
rentals </p>
</div>
<div id="HEwbLogo">
<img src="http://www.sencha.com/deploy/css3-
ads/hertz/logo.png ">
</div>
</div>
</div>
</div>
</body>
</html>
Kembali kepada | Archives →
Sebarang komen dan pertanyaan, sila klik butang di bawah ini: