<?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>Transitions &#8211; Mach3.laBlog</title>
	<atom:link href="https://blog.mach3.jp/tag/transitions/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.mach3.jp</link>
	<description></description>
	<lastBuildDate>Thu, 24 Mar 2011 01:10:44 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>JS/CSSでふわりとフェードするボタンをつくる</title>
		<link>https://blog.mach3.jp/2011/03/24/fadebutton-by-js-and-css.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Thu, 24 Mar 2011 01:10:44 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[head.js]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Transitions]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=1660</guid>

					<description><![CDATA[震災後、なんやかんやで2週間あけてしまいました。こんにちは、私は元気です。 今日は、せっかくCSS3で色々な事が出来るようになってきたところで、 ふわりとフェードするボタンの作りなどを記してみる。 作るもの こういったU [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>震災後、なんやかんやで2週間あけてしまいました。こんにちは、私は元気です。<br />
今日は、せっかくCSS3で色々な事が出来るようになってきたところで、<br />
ふわりとフェードするボタンの作りなどを記してみる。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/_JJkNs5Ixl70/TYozxeh8WgI/AAAAAAAABP4/5craRuCkCzI/201103240253.png" alt="JS/CSSでふわりとフェードするボタンをつくる"/></figure>



<p></p>



<span id="more-1660"></span>



<h2 class="wp-block-heading">作るもの</h2>



<ul class="wp-block-list">
<li>マウスオーバーすると、ふわーっと表示が切り替わるボタン。 </li>



<li>画像を二枚重ね、上の画像の透明度を変化させて表示を切り替える。</li>
</ul>



<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/_JJkNs5Ixl70/TYoz7kuit1I/AAAAAAAABP8/1gK5hFbzGZI/201103240254.png" alt="マウスオーバーすると、ふわーっと表示が切り替わるボタン"/></figure>



<p></p>



<p>こういったUIにあたるエフェクトは好みが別れる気がしますが、<br />
個人的にはリッチな感じがして結構好きです。</p>



<p>HTML</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"demo"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"fadeButton"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>&gt;</span>FadeButton<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></span></pre>


<p>基本となるCSS</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-id">#demo</span> {
    <span class="hljs-attribute">display</span>: block;
    <span class="hljs-attribute">width</span>: <span class="hljs-number">135px</span>;
    <span class="hljs-attribute">height</span>: <span class="hljs-number">135px</span>;
    <span class="hljs-attribute">background-position</span>: left top;
    <span class="hljs-attribute">background-repeat</span>: no-repeat;
    <span class="hljs-attribute">background-image</span>: <span class="hljs-built_in">url</span>(default.png);
}

<span class="hljs-selector-id">#demo</span> <span class="hljs-selector-tag">a</span> {
    <span class="hljs-attribute">display</span>: block;
    <span class="hljs-attribute">width</span>: <span class="hljs-number">135px</span>;
    <span class="hljs-attribute">height</span>: <span class="hljs-number">135px</span>;
    <span class="hljs-attribute">text-indent</span>: -<span class="hljs-number">9999px</span>;
    <span class="hljs-attribute">overflow</span>: hidden;
    <span class="hljs-attribute">background-position</span>: left top;
    <span class="hljs-attribute">background-repeat</span>: no-repeat;
    <span class="hljs-attribute">background-image</span>: <span class="hljs-built_in">url</span>(hover.png);
}
</code></span></pre>


<h2 class="wp-block-heading">まずはCSS3のTransitionsで</h2>



<p>Transitionsを使うと恐ろしく簡単なコードで実現できちゃいます。</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-class">.fadeButton</span> <span class="hljs-selector-tag">a</span> {
    <span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>;
    <span class="hljs-attribute">-webkit-transition</span>: opacity .<span class="hljs-number">5s</span> linear;
}

<span class="hljs-selector-class">.fadeButton</span> <span class="hljs-selector-tag">a</span><span class="hljs-selector-pseudo">:hover</span> {
    <span class="hljs-attribute">opacity</span>: <span class="hljs-number">1</span>;
    <span class="hljs-attribute">-webkit-transition</span>: opacity .<span class="hljs-number">5s</span> linear;
}
</code></span></pre>


<p>ね、簡単でしょう？（ボブ</p>



<p>が、現在はまだサポートしているブラウザは少ないので、<br />
サポート外のブラウザについてはJavaScriptに頼らざるを得ません。</p>



<h2 class="wp-block-heading">Transition非対応の環境の為のJavaScriptを用意する</h2>



<p>Transition非対応のブラウザ用に、JavaScriptによるフォールバックを用意します。<br />
判別には<a href="/2011/03/headjs.html">先日紹介した「head.js」</a>を使用。</p>



<h3 class="wp-block-heading">CSSの:hoverスタイルを上書き</h3>



<p>非対応の場合の:hoverスタイルを無効にしておきます。<br />
Transitions非対応な場合は、head.jsが<br />
&#8220;no-csstransitions&#8221;をhtml要素のclassに追加してくれるので<br />
こんな感じで。</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-class">.no-csstransitions</span> <span class="hljs-selector-class">.fadeButton</span> <span class="hljs-selector-tag">a</span><span class="hljs-selector-pseudo">:hover</span>{
    <span class="hljs-attribute">opacity</span>:<span class="hljs-number">0</span>;
}
</code></span></pre>


<h3 class="wp-block-heading">JavaScriptでフェードイン/アウトさせる</h3>



<p>jQueryを使った次のようなコードで、<br />
大体似たようなエフェクトを付加させられます。</p>


<pre class="wp-block-code"><span><code class="hljs language-php">(<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">($)</span> </span>{
    <span class="hljs-keyword">if</span> (!head.transitions) { <span class="hljs-comment">// head.jsでTransitions対応を判別</span>
        $(<span class="hljs-string">".fadeButton"</span>).each(<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">()</span> </span>{
            <span class="hljs-keyword">var</span> <span class="hljs-keyword">self</span> = $(this);
            <span class="hljs-keyword">self</span>.bind({
                mouseover: <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">(e)</span> </span>{
                    <span class="hljs-keyword">self</span>.children(<span class="hljs-string">"a"</span>).stop().animate({
                        opacity: <span class="hljs-number">1</span>
                    }, <span class="hljs-number">500</span>);
                },
                mouseout: <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">(e)</span> </span>{
                    <span class="hljs-keyword">self</span>.children(<span class="hljs-string">"a"</span>).stop().animate({
                        opacity: <span class="hljs-number">0</span>
                    }, <span class="hljs-number">500</span>);
                }
            });
        });
    }
})(jQuery);
</code></span></pre>


<h2 class="wp-block-heading">デモ＆ファイナルコード</h2>



<p><a href="http://jsdo.it/mach3/1Voz">JS/CSSでふわりとフェードするボタンをつくる &#8211; jsdo.it &#8211; Share JavaScript, HTML5 and CSS</a></p>



<h2 class="wp-block-heading">注意！</h2>



<p>IEで透過PNGを使ってフェードしようとすると不具合が生じるので注意。<br />
DD_belatedPNG等を使って回避する必要があります。<br />
» <a href="/2011/02/png-and-opacity-on-explorer.html">IEの透過PNG+opacityの不具合を治すメモ | Mach3.laBlog</a></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
