<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>css-3Blog &#187; transition</title>
	<atom:link href="http://www.css-3.hu/tag/transition/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.css-3.hu</link>
	<description>Ez a blog elsősorban a CSS 3-ról szól, amely a CSS stílusleíró nyelv legújabb verziója.</description>
	<lastBuildDate>Wed, 16 Mar 2011 17:25:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CSS 3 átmenetek</title>
		<link>http://www.css-3.hu/2010/03/css-3-atmenetek/</link>
		<comments>http://www.css-3.hu/2010/03/css-3-atmenetek/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 11:38:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Nincs kategorizálva]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[CSS3 példa]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[transition]]></category>

		<guid isPermaLink="false">http://www.css-3.hu/?p=245</guid>
		<description><![CDATA[Az előző posztokban láthattuk, hogy a CSS pszeudo-osztályok segítségével más-más stílust adhatunk egy elemnek annak állapotától függően. De hogyan érhetjük el, hogy a stílusátmenet ne hirtelen, hanem fokozatosan történjen? A CSS 3 transition tulajdonsága lehetőséget ad arra, hogy ilyen effekteket Javascript nélkül is létre tudjunk hozni.
Mivel a tulajdonság pontos megvalósítása még változhat, ezért &#8212; ahogy [...]]]></description>
			<content:encoded><![CDATA[<p>Az előző posztokban láthattuk, hogy a CSS pszeudo-osztályok segítségével más-más stílust adhatunk egy elemnek annak állapotától függően. De hogyan érhetjük el, hogy a stílusátmenet ne hirtelen, hanem fokozatosan történjen? A CSS 3 <em>transition </em>tulajdonsága lehetőséget ad arra, hogy ilyen effekteket Javascript nélkül is létre tudjunk hozni.<span id="more-245"></span></p>
<p>Mivel a tulajdonság pontos megvalósítása még változhat, ezért &mdash; ahogy már megszokhattuk &mdash; az egyes layout-motor fejlesztők itt is egyedi neveket vezettek be. A Webkit alapú böngészők esetén <em>-webkit-transition</em>, a Gecko alapúaknál <em>-moz-transition</em>, a Presto esetében pedig <em>-o-transition</em> a tulajdonság pontos neve. Szerencsére paraméterezésük minden motor esetén megegyezik. Akik fejből tudják, hogy melyik böngésző melyik layout-motort használja, azok az előző mondatból már kikövetkeztették, hogy a Chrome, a Safari, a Firefox és az Opera a szerencsés nyertesek. Viszont hozzátartozik az igazsághoz, hogy mivel a Gecko csak az 1.9.3 verziótól támogatja, ezért a Firefox csak a még meg nem jelent 3.7-es verziótól tudja az itt leírtakat. <del datetime="2010-09-03T17:08:49+00:00">Az Opera pedig, bár elvileg támogatja, gyakorlatilag nem mindig a várakozásoknak megfelelően jeleníti meg az átmeneteket. Így végeredményben azt kell mondanom, hogy a példák maradéktalan élvezetéhez Webkit alapú böngésző (azaz Chrome vagy Safari) javasolt.</del> Ha beállítjuk CSS-ben az alapértelmezett színt, akkor Opera alatt is a várakozásoknak megfelelően működik. A többi böngészőnél ez nem fontos.</p>
<p>A hosszas bevezető után lássuk a két példánkat, amelyeken keresztül a dolog működését szemléltetjük. Az alábbi képek élesebbek, ha az egeret föléjük mozgatjuk, egyébként elhalványodnak. Ami a lényeg: ez a változás nem egyből, hanem fél másodperc alatt zajlik le. (Akinél egyből megtörténik, annak a böngészője nem támogatja ezt a tulajdonságot).</p>
<p><iframe src="/wp-content/code-samples/css3-transition2.html" width="100%" height="150" frameBorder="0" scrolling="no">Az Ön böngészője nem támogatja az <em>iframe</em> használatát.</iframe></p>
<p>A fenti példa létrehozásához a következő kódot alkalmaztam:</p>
<pre class="brush: css">
img {
	opacity: .5;
	-webkit-transition: opacity .5s ease-in;
	-moz-transition: opacity .5s ease-in;
	-o-transition: opacity .5s ease-in;
}
img:hover {
	opacity: 1;
}
</pre>
<p>Most lássunk egy példát egy olyan űrlapra, ahol az éppen kiválasztott beviteli mező háttere megváltozik:</p>
<p><iframe src="/wp-content/code-samples/css3-transition.html" width="100%" height="250" frameBorder="0" scrolling="no">Az Ön böngészője nem támogatja az <em>iframe</em> használatát.</iframe></p>
<p>A varázslat a következő beállításoknak köszönhető:</p>
<pre class="brush: css">
input, textarea {
    background-color: white;
	-webkit-transition: background-color .5s linear;
	-moz-transition: background-color .5s linear;
	-o-transition: background-color .5s linear;
}
input:focus, textarea:focus {
	background: #eeeeee;
}
</pre>
<p>Most következzen a kód magyarázata. A fenti példákban a <em>transition </em>ún. shorthand formáját alkalmaztam, azaz egyben adtam meg több beállítást:</p>
<pre class="brush: css">
transition:  [ &lt;transition-property&gt; || &lt;transition-duration&gt; || &lt;transition-timing-function&gt; || &lt;transition-delay&gt; ]
</pre>
<p>Lássuk az egyes tulajdonságokat külön-külön:</p>
<p><em>transition-property</em></p>
<p>Itt kell megadnunk azt a tulajdonságot, amelyre az átmenetet alkalmazni akarjuk. Ez lehet egy szín (<em>color</em>), lehet az áttetszőség (<em>opacity</em>), de lehet az elem szinte bármely tulajdonsága, mint például a  <em>left</em>, a <em>border-width</em>, stb. Nyilvánvalóan nem értelmezhető viszont az olyan tulajdonságokra, amelyekből nem lehet átmeneteket képezni, mint például a <em>position</em>, a <em>display</em>, stb.</p>
<p><em>transition-duration</em></p>
<p>Itt állíthatjuk be, hogy mennyi idő alatt menjen végbe az átmenet. Például 1.5s beállítása esetén &mdash; nem meglepő módon &mdash; másfél másodperc alatt fog az átmenet lezajlani.</p>
<p><em>transition-timing-function</em></p>
<p>Itt egy függvényt adhatunk meg az átmenet sebességének meghatározására. Ha a <em>linear </em>beállítást használjuk, akkor az átmenet egyenletes sebességgel megy végbe. Az <em>ease-in</em> hatására az átmenet lassan kezdődik és később gyorsul fel. Az <em>ease-out</em> ennek az ellenkezője: gyorsan indul, és a végén lassabb. Vagy megadhatunk tetszőleges <a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve" target="_blank">Bézier-görbét</a> a sebesség meghatározásához: <em>cubic-bezier(x1, y1, x2, y2)</em>.</p>
<p><em>transition-delay</em></p>
<p>Ha azt szeretnénk, hogy az átmenet ne egyből, hanem egy bizonyos idő elteltével kezdődjön, akkor ennek a tulajdonságnak is érteket kell adnunk. A fenti példákban ezt nem használtam.</p>
<p>A <em>transition </em>tulajdonságok részletes leírását az egyes layout-motorok szemszögéből ezeken a linkeken találjátok: <a href="http://webkit.org/blog/138/css-animation/" target="_blank">Webkit</a>, <a href="https://developer.mozilla.org/en/CSS/-moz-transition" target="_blank">Gecko</a>, <a href="http://www.opera.com/docs/specs/presto23/css/transitions/" target="_blank">Presto</a>.</p>
<p>A CSS 3 tehát ismét kezünkbe adott egy lehetőséget, hogy egy, a modern web designban népszerű, effektet <a href="http://www.jquery.com/" target="_blank">jQuery</a> vagy egyéb Javascript megoldás nélkül alkalmazhassunk. Ráadásul mivel az ehhez hasonló effektek ritkán nélkülözhetetlen elemei egy weboldalnak, még azért sem kell aggódnunk, hogy mi van akkor ha egy nem kompatibilis böngészőben az átmenet nem fokozatosan, hanem egyből végbemegy. A web design szakma egyre inkább egyetért abban, hogy itt az ideje a weboldal építésnél azt a szemléletet magunkévá tenni, hogy a funkcionalitásnak működnie kell minden népszerű böngészőben, viszont ha a egy-két spéci effekt csak a legkorszerűbb böngészőkben látható az még nem a világ vége.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 440px; width: 1px; height: 1px; overflow: hidden;"><span class="Apple-style-span" style="border-collapse: separate; color: #000000; font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="color: #25221d; font-family: Verdana,Tahoma,sans-serif; font-size: 14px; line-height: 24px;"></p>
<pre class="eval" style="margin: 0px 0px 1.7em; padding: 10px; border: 1px solid #dfecf1; overflow: auto; font: 12px 'Courier New','Andale Mono',monospace; color: #25221d;">-moz-transition:  [ &lt;transition-property&gt; || &lt;transition-duration&gt; || &lt;transition-timing-function&gt; || &lt;transition-delay&gt; ]</pre>
<p></span></span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.css-3.hu/2010/03/css-3-atmenetek/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

