Transition қасиеті (свойство) CSS3

Көркем :) CSS3-ті жақсы көретін едің ғо ))) Саған арнап жазып жатырмын.

Сонымен не жазарымды білмей жүргеніме бір айдай болып қалыпты. Фотошоп жайында жалғастырайын десем, ноудбукта Фотошопым ашылмай қалды, вирус жеп қойыпты. Сосын не жазам, не жазап деп отырып, осы CSS3 тің Transition қасиеті (свойство) жайлы жазамын деп төрт ай бұрып айтыппын да сонымен ұмытып кетіппін. Соны жалғастырғалы жатырмын.

Анықтама:
CSS3-тің жаңа мүмкіндіктері керемет деп айтсам, ештеңе айтпағанмен тең шығар. Сол керемет мүмкіндіктерідің бірі осы transition қасиеті (свойство).

Transition — CSS қасиеттерін (свойство) жәймен, белгілі бір уақыт аралығында біртіндеп ауысуына мүмкіндік береді.

Transition қасиетінің (свойство) негізгі төрт мәні бар. Олар transition-property, transition-duration, transition-timing-function және transition-delay.

Жеке жеке:

transition-property — қай қасиетке (свойство) анимациялық өту (переход) орналытатыны жазылады.
Қабылдайтын мәндері:
  • none — анимация болмайды.
  • all — барлық қасиетке (свойство) анимация болады
  • <қасиет> — жазылған қасиетке (свойство) анимация
    орындалатын болады

transition-duration — анимация қанша уақытқа созылатыны жазылады (анимация ұзақтыңы).
Қабылдайтын мәні:
  • <мәні> — дәл уақыт мәні жазылады. Уақыт секундпен s немесе миллисекундпен ms берілуі керек.

transition-timing-function — анимацияның біртіндеп өту ара қашықтығын есептеу әдісі жазылады.

Қабылдайтын мәндері:
  • ease
  • linear
  • ease-in
  • ease-out
  • ease-in-out
  • cubic-bezier

*ощм мен мынаны түсінбеймін, сонқытқан үнсіз келісім бойынша мен ease мәмін қолданатын боламын.

transition-delay — анимация басталар алдыңдақа қанша уақытқа үзіліс жасау керек, сол жазылады.
Қабылдайтын мәні:
  • <мәні> — дәл уақыт мәні жазылады. Уақыт секундпен s немесе миллисекундпен ms берілуі керек.

Негізі болды )) Бары осы ғана. Қазір мысалдармен көрсететін боламын. Код ұзақ жазылады екен деп қорықпаңдар, мына төрт мәнді бір қатарға жазуға болады қысқартып. Яғни былай жазудың орнын:

div {
transition-property:background-color;
transition-duration:5s;
transition-timing-function:ease;
transition-delay:50ms;
}


Былай бір қатарға қысқартып жазуға болады.

div {
transition: background-color 5s ease 50ms;
}


Тәжірибелік бөлім:
100х100px көлемді div блокқа :hover оқиғасы орындалған кезде (курсор қабылдаған кезде) div блок көлемі 200x200px-ге өзгеруі қажет.

Алдымен HTML:
<div class="animate">Курсорды мында :)</div>


Енді CSS:
.animate {
	border: 2px dashed #03F;
	width: 100px;
	height: 100px;
	text-align: center;
	cursor: pointer;
	transition: width 1s ease 50ms, height 1s ease 50ms;
        /*мылжың код префикстер арқылы ну енд CSS3 қо*/
	-webkit-transition: width 1s ease 50ms, height 1s ease 50ms;
	-moz-transition: width 1s ease 50ms, height 1s ease 50ms;
	-o-transition: width 1s ease 50ms, height 1s ease 50ms;
}
.animate:hover {
	width: 200px;
	height: 200px;
}


Түсіндіріп кетейін:
transition: width 1s ease 50ms, height 1s ease 50ms;

Мына кодтта біз былай дейміз: блок биіктігі (height ) мен ұзындығы (width ) анимациялық эффектпен өзгерілсін, және анимация ұзақтығы 1s болсын, және анимация басталар алдында 50ms тоқтап тұрсын.

.animate:hover {
	width: 200px;
	height: 200px;
}

Мына кодпен анимацияны «активизировать» етеміз. Яғни «ховер» оқиғасында блок биіктігі мен ұшындығы өзгерілсін деп тұр.

Міне кішігірім мысал осы.

Әр браузерге жеке жеке префикспен әдемілеп асықпай жазссаңыз, төмендегі браузерлер қолдайтын болады.

  • Safari 3.1 және Chrome 1 жоғары -webkit-transition.
  • Opera 10.5жоғары -o-transition
  • Firefox 4.0 жоғары -moz-transition

Мынау барлық исходный коды. Көшіріп, блакнотка «вставить» етіп, .html кеңейтілімінде сақтап, браузерде ашып қарай берсеіз болады.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>transition</title>
<style>
.animate {
	border: 2px dashed #03F;
	width: 100px;
	height: 100px;
	text-align: center;
	cursor: pointer;
	transition: width 1s ease 50ms, height 1s ease 50ms;
	-webkit-transition: width 1s ease 50ms, height 1s ease 50ms;
	-moz-transition: width 1s ease 50ms, height 1s ease 50ms;
	-o-transition: width 1s ease 50ms, height 1s ease 50ms;
}
.animate:hover {
	width: 200px;
	height: 200px;
}
</style>
</head>
<body>
<div class="animate">Курсорды мында :)</div>
</body>
</html>


DEMO мына жерден қарауға болады

15 пікір

yerbol89
Тамаша Абылай. Өте жақсы пост болды мен үшін, мүмкін осы мысалыңыды болашақта мен СЖ сайтында қолданып қалатын шығармын. Абеке саған ұсыныс осындай тамаша мысалдарыңыңды демосымен өзіңе бір кішкентай домен алып сонда жариялап отырмас па екенсің? Себебі hosting.users.kz/1.html енді үнемі тұратын болады ма? Болашақта маған қажет болса сол жерден тауып ала аламын ба?
Abylai
ия дұрыс айтасың, демолардың барлығын бір жерге жинап қою керек еді. Алдыңғы жазбаларымның ДЕМОлары да 404 ошибка болып жатыр (: Бәрін қалпына келтіріп, жөндеп қоярмын соңара.
AKA
Түсінбей қалдым, анимация жасайтын бағдарламаның функциясы ма, әлде…
Abylai
CSS3-тің жаңа мүмкіндіктері, қаситтері.
CSS дегеніміз HTML құжаттың сырт келбетін (стильдерін) сипаттауға арналған тіл.
HTML дегеніміз логикалық белгілеу тілі. Веб парақшаларды құрғанда осы HTML тілі қолданылады (тек HTML емес, ну енд)

Ощм сайтқа CSS3 формалды тілі арқылы анимация жасау жолын көрсеттім.
AKA
Сілтеме бойынша өтсем, «Курсорды мында :)» деп тұр, болды.
Abylai
Сол «блокқа» курсорды апардың ба? Браузеріңнің нұсқасы Safari 3.1, Chrome 1, Opera 10.5, Firefox 4.0 — тен жоғары ма?
AKA
Апардым, қозғалды үлкейіп. :)
Abylai
:) сол кішігірім «анимацияны» жасау жолын жаздым ощм
MSHERIMBEK
Netscape Navigator 1.3 =))))))))
Abylai
Рахмет кэп, енді түсінікті болды.
qyrmyzy
Жігітің осының бәрін түсіндірсе отырғызып…
banzaika1990
«Ой Жаным лучше футбол көрейік аааааа» — дитін сияқтысың ғой
serjan
Алматыда осы программалау тілдерін оқытатын курс бар ма екен қазақша, өздігінен үйрену көп уақыт алады.
Тек тіркелген қолданушылар ғана пікір қалдыра алады.