<?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>PNG &#8211; Mach3.laBlog</title>
	<atom:link href="https://blog.mach3.jp/tag/png/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.mach3.jp</link>
	<description></description>
	<lastBuildDate>Mon, 30 Sep 2013 01:46:54 +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>belatedPNGと幸せにくらす為の小さなコツと小技</title>
		<link>https://blog.mach3.jp/2013/09/30/happy-life-with-belatedpng.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Mon, 30 Sep 2013 01:46:54 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[belatedPNG]]></category>
		<category><![CDATA[InternetExplorer]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PNG]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=3271</guid>

					<description><![CDATA[様々な理由から多くの方がAlphaImageLoaderよりもbelatedPNGを活用されているようですが、 単純明快な前者と違って、後者は便利な反面ブラックボックスな部分も多いです。 今回のお話は、そんなbelate [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>様々な理由から多くの方がAlphaImageLoaderよりもbelatedPNGを活用されているようですが、 単純明快な前者と違って、後者は便利な反面ブラックボックスな部分も多いです。 今回のお話は、そんなbelatedPNGを使用する上で注意すべき点と、困ったときのおまじない。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/-M_u13yQ_nV0/UkhVMLhz3MI/AAAAAAAACNA/BGLeski5_rI/s400/20130930-0.png" alt="belatedPNGと幸せにくらす為の小さなコツと小技"/></figure>



<p></p>



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



<dl>
<dt>前提</dt>
<dd>ここで言う「belatedPNG」は<a href="http://www.dillerdesign.com/experiment/DD_belatedPNG/">本家</a>ではなく、<br />
本家をフォークしている「<a href="https://github.com/wakuworks/jquery.belatedPNG/">jquery-belatedpng.js</a>」を指しています</dd>
</dl>



<h2 class="wp-block-heading">何をしてくれているのか、知っておく</h2>



<p>まず、belatedPNG が行ってくれる処理をおさらいしてみましょう。 簡単に書いていますが、結構面倒な事を一手に引き受けてくれている事がわかります。</p>



<ol class="wp-block-list">
<li>fixPng() をあてた要素の複製をVMLで生成してそれを表示する</li>



<li>元要素のスタイルの変更を検知してVML要素にも変更を加える</li>



<li>VML要素へのマウスイベントを元要素に伝えてくれる</li>
</ol>



<p>別にbelatedPNGに限った話ではないですが、どのような処理をしているのか知っておく事で何か不具合が発生した時に対処しやすくなりますね。 実際にどのようなVMLが生成されてどう配置されているのかは、IEの開発者ツール等で見る事ができますので困ったときは覗いてみましょう。</p>



<h2 class="wp-block-heading">fixPng()のセレクタは適切な物を</h2>



<p>たまに拝見するのが、次のようにゆるいセレクタで fixPng() を行っているコードです。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">$(<span class="hljs-string">"div, img"</span>).fixPng();
</code></span></pre>


<p>これは大変極端な例ですが、全てのdiv要素とimg要素に対してbelatedPNGの処理を行っています。 多くの場合このコードは正常に動作しますが、正直好ましくないと思うのです。</p>



<h3 class="wp-block-heading">プレーンでない物が増えていく</h3>



<p>余計なものまで処理させてしまうコストの面もそうなのですが、 それ以上に重要なのは、予想外の物までVML化されてしまう点です。 そこで困るのはフロント開発のエンジニアさん達です。 プレーンな要素を想定して組み上げたアプリが何故か動かずに頭を抱えたり、 問題解決に辿り着くまでに大きな回り道をさせられてしまうかもしれません。</p>



<p>belatedPNG の内部で処理不要な要素（PNG画像が関わっていない物）はスルーしてくれているので、 そこまで大きな問題は発生しないかもしれませんが、「よくわからないもの」は出来るだけ少なくしておきたいですね。</p>



<h3 class="wp-block-heading">適切なセレクタで実行しよう</h3>



<p>そんなわけで、渡すセレクタは適切に絞った物を設定する事をお勧めしたいです。 可能なら、処理するクラス名を定義してしまうのが安全かもしれません。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">$(<span class="hljs-string">".fixpng"</span>).fixPng();
</code></span></pre>


<h2 class="wp-block-heading">処理する環境を判別する</h2>



<p>belatedPNGが必要な環境はIE9未満（透明度を使用する場合）なので、その環境下だけで処理を行うようにします。 例えば条件分岐コメントを利用する場合はこの様な感じで。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-comment">&lt;!--&#91;if lt IE 9]&gt;
&lt;script src="jquery.belatedpng.js"&gt;&lt;/script&gt;
&lt;script&gt;
    $(".fixpng").fixPng();
&lt;/script&gt;
&lt;!&#91;endif]--&gt;</span>
</code></span></pre>


<p>ミニファイなどの都合でJS内で判別したい場合は、「CSSでopacityをサポートしていない」「IEである」という条件で如何でしょう。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-keyword">if</span>(! $.support.opacity &amp;&amp; !! ActiveXObject){
    $(<span class="hljs-string">".fixpng"</span>).fixPng();
}
</code></span></pre>


<p>「VMLが使用可能か」という条件でも良いのですが、下記リンクで紹介されている様に、少し長くなってしまいます。</p>



<p>cf) <a href="http://stackoverflow.com/questions/654112/how-do-you-detect-support-for-vml-or-svg-in-a-browser">javascript &#8211; How do you detect support for VML or SVG in a browser &#8211; Stack Overflow</a></p>



<h2 class="wp-block-heading">コンテナ以下の要素の透明度をまるごと変更する</h2>



<p>belatedPNG（VML）の特徴の一つとして、親要素のopacityを継承しない問題がありますが、 あるコンテナ以下の要素の透明度をまるごと変えたい時はどうしたらよいでしょうか。</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">class</span>=<span class="hljs-string">"holder"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"foo.png"</span> <span class="hljs-attr">alt</span>=<span class="hljs-string">""</span> /&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"bar.png"</span> <span class="hljs-attr">alt</span>=<span class="hljs-string">""</span> /&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"baz.png"</span> <span class="hljs-attr">alt</span>=<span class="hljs-string">""</span> /&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">script</span>&gt;</span><span class="javascript">
    $(<span class="hljs-string">".holder img"</span>).fixPng();
    $(<span class="hljs-string">".holder"</span>).fadeOut(); <span class="hljs-comment">// 画像の透明度が変わらない！</span>
</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
</code></span></pre>


<p>上のコードで &#8220;.holder&#8221; まるごとフェードアウトしたい場合、例えば次のようにしてみます。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">$(<span class="hljs-string">".holder, .holder &#91;vmlInitiated]"</span>).fadeOut();
</code></span></pre>


<p>belatedPng はVMLに書き出す際に元要素に「vmlInitiated」という属性をつけるので、それを利用してみた例です。 あるいは、前述のようにクラスが決まっているのであればそれを指定してしまった方が効率的ですね。</p>



<h3 class="wp-block-heading">関数化してみる</h3>



<p>毎度面倒な場合は関数化してみましょう。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-comment">// $.fn.fadeOut() のラッパー</span>
$.fn.belatedFadeOut = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
    <span class="hljs-keyword">this</span>.fadeOut.apply(<span class="hljs-keyword">this</span>.find(<span class="hljs-string">"&#91;vmlInitiated]"</span>), <span class="hljs-built_in">arguments</span>);
    <span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.fadeOut.apply(<span class="hljs-keyword">this</span>, <span class="hljs-built_in">arguments</span>);
};
<span class="hljs-comment">// $.fn.fadeIn() のラッパー</span>
$.fn.belatedFadeIn = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
    <span class="hljs-keyword">this</span>.fadeIn.apply(<span class="hljs-keyword">this</span>.find(<span class="hljs-string">"&#91;vmlInitiated]"</span>), <span class="hljs-built_in">arguments</span>);
    <span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.fadeIn.apply(<span class="hljs-keyword">this</span>, <span class="hljs-built_in">arguments</span>);
};
<span class="hljs-comment">// $.fn.animate() のラッパー</span>
$.fn.belatedAnimate = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
    <span class="hljs-keyword">if</span>(<span class="hljs-built_in">arguments</span>&#91;<span class="hljs-number">0</span>].opacity !== <span class="hljs-literal">undefined</span>){
        args = &#91;].slice.call(<span class="hljs-built_in">arguments</span>);
        args&#91;<span class="hljs-number">0</span>] = {<span class="hljs-attr">opacity</span>: <span class="hljs-built_in">arguments</span>&#91;<span class="hljs-number">0</span>].opacity};
        <span class="hljs-keyword">this</span>.animate.apply(<span class="hljs-keyword">this</span>.find(<span class="hljs-string">"&#91;vmlInitiated]"</span>), args);
    }
    <span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.animate.apply(<span class="hljs-keyword">this</span>, <span class="hljs-built_in">arguments</span>);
};

<span class="hljs-comment">// fadeOut等のかわりに使います</span>
$(<span class="hljs-string">".holder"</span>).belatedFadeOut(<span class="hljs-number">1000</span>);
</code></span></pre>


<h2 class="wp-block-heading">クラスによるbackground-imageの変更を適用させる</h2>



<p>例えば次のように、クラスによって要素の背景画像が変わるCSSを組んでいるとしましょう。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">style</span>&gt;</span><span class="css">
    <span class="hljs-selector-class">.box</span> { <span class="hljs-attribute">background-image</span>: <span class="hljs-built_in">url</span>(red.png); }
    <span class="hljs-selector-class">.box</span><span class="hljs-selector-class">.blue</span> { <span class="hljs-attribute">background-image</span>: <span class="hljs-built_in">url</span>(blue.png); }
</span><span class="hljs-tag">&lt;/<span class="hljs-name">style</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"box"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">script</span>&gt;</span><span class="javascript">
    <span class="hljs-keyword">if</span>(! $.support.opacity &amp;&amp; !! ActiveXObject){
        $(<span class="hljs-string">".box"</span>).fixPng();
    }
    $(<span class="hljs-string">".box"</span>).addClass(<span class="hljs-string">"blue"</span>); <span class="hljs-comment">// 通常は背景が blue.png に変わるが…</span>
</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
</code></span></pre>


<p>通常、&#8221;.box&#8221; に &#8220;blue&#8221; クラスをあてれば背景が &#8220;blue.png&#8221; に切り替わるはずなのですが、 belatedPNGが効いた要素では残念な事に切り替わりません。</p>



<h3 class="wp-block-heading">なぜなのか</h3>



<p>belatedPNGでは、VML要素と元要素のスタイルの同期をとるために <em>&#8220;propertychange&#8221;</em> というイベントを利用しています。 これは、要素の属性に変更が加えられた際に発火するイベントです。</p>



<ul class="wp-block-list">
<li><a href="http://msdn.microsoft.com/en-us/library/ie/ms536956(v=vs.85).aspx">propertychange | onpropertychange event (Internet Explorer)</a></li>
</ul>



<p>元要素のスタイルに変更が加えられた時にこのイベントが発火して、 VMLの表示を元要素のスタイルにあわせて更新するという仕組みです。 ですが、背景の更新は背景に関する変更がなされた場合にしか行われません。 つまり、クラス名の変更を行っても何も起きないのです。</p>



<h3 class="wp-block-heading">独自属性で半ば強引に解決する</h3>



<p>要するに、元要素の「背景に関する属性」を変更すれば更新されるわけです。 コードを読むと「属性名に&#8221;background&#8221;という文字を含んでいるかどうか」で判別しているので、 こんな感じで更新されるようになります。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">$(<span class="hljs-string">".box"</span>).prop(<span class="hljs-string">"update-background"</span>, <span class="hljs-literal">true</span>);
</code></span></pre>


<p>なお、属性の値は「変更」される必要はなく、値を設定するだけで発火しますので、trueを渡し続けても大丈夫です。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p>belatedPNG は、本来出来ない事を出来るようにしてしまう魔法のようなスクリプトですが、 魔法には動く為の仕組みがあり、動かす為のルールもあります。 正しい用法を守って、計画的に利用していきたいですね。</p>



<p>テーマの都合上あまり良くない点ばかり書き連ねる事になってしまいましたが、 個人的に似たライブラリを再発明してみようとした事があり、その面倒さに閉口した記憶があります。 完成に到るまで本家ならびにjQueryプラグインを書き上げてくれた方にこの場をかりてお礼を申し上げます。</p>



<p>いつの日か、ライブラリの命名通り、透過PNGの対応自体が「時代遅れ」になる事を待ち望んで。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>IEの透過PNG+opacityの不具合を治すメモ</title>
		<link>https://blog.mach3.jp/2011/02/17/png-and-opacity-on-explorer.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Thu, 17 Feb 2011 03:01:54 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[DD_belatedPNG]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PNG]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=1595</guid>

					<description><![CDATA[透過PNGの処理が下手くそなのは、IE6だけではなく、IE7/8も同様です。 IEで透過PNGをあてた要素のopacityを弄ると、周りがグレーがかって汚くなります。 この現象はよく知られていると思いますが、今日はこの不 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>透過PNGの処理が下手くそなのは、IE6だけではなく、IE7/8も同様です。<br />
IEで透過PNGをあてた要素のopacityを弄ると、周りがグレーがかって汚くなります。<br />
この現象はよく知られていると思いますが、今日はこの不具合の治し方のメモを記しておきます。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/_JJkNs5Ixl70/TVu-3xR1lSI/AAAAAAAABMM/DOQpFbompG8/201102162110.png" alt="IEの透過PNG+opacityの不具合を治すメモ"/></figure>



<p></p>



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



<h2 class="wp-block-heading">サンプルコード</h2>



<p>例えば、こんなコード。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">style</span>&gt;</span><span class="css">
<span class="hljs-selector-class">.test</span> {
    <span class="hljs-attribute">display</span>:block;
    <span class="hljs-attribute">width</span>:<span class="hljs-number">128px</span>;
    <span class="hljs-attribute">height</span>:<span class="hljs-number">128px</span>;
    <span class="hljs-attribute">background</span>:<span class="hljs-built_in">url</span>(./test.png) <span class="hljs-number">0</span> <span class="hljs-number">0</span> no-repeat transparent;
}
<span class="hljs-selector-class">.test</span><span class="hljs-selector-pseudo">:hover</span> {
    <span class="hljs-attribute">background-image</span>:<span class="hljs-built_in">url</span>(./test-hover.png);
}
</span><span class="hljs-tag">&lt;/<span class="hljs-name">style</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> <span class="hljs-attr">class</span>=<span class="hljs-string">"test"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
</code></span></pre>


<p>test.pngとtest-hover.pngは透過PNGです。<br />
IE6では当然透過されずに背景がグレーになります。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/_JJkNs5Ixl70/TVu99U1FJqI/AAAAAAAABL8/IkDaUNtWpnI/20110216a.png" alt="IE6は背景がグレーに"/></figure>



<p></p>



<p>IE7,8では綺麗に表示されている様子ですが…</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">$(<span class="hljs-string">".test"</span>).css( <span class="hljs-string">"opacity"</span>, <span class="hljs-string">"0.5"</span> );
</code></span></pre>


<p>このようにfilterのopacityを弄ってやると、下記の画像のような状態になります。キタナイ。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/_JJkNs5Ixl70/TVu99fg5tCI/AAAAAAAABMA/21E-ATnMuv0/20110216b.png" alt="IE7,8ではフチが黒くなる"/></figure>



<p></p>



<h2 class="wp-block-heading">DD_belatedPNGはどうか</h2>



<p>上記の現象はalphaImageLoaderを使えば解決出来るのですが、<br />
alphaImageLoaderはhover時の処理が面倒だったり、遅かったりと問題もあります。<br />
そこで去年ぐらいからもてはやされているDD_belatedPNGを使ってみましょう。</p>



<p><a href="http://www.dillerdesign.com/experiment/DD_belatedPNG/">DD_belatedPNG: Medicine for your IE6/PNG headache!</a></p>



<p>DD_belatedPNGは他の透過PNG用ライブラリと異なり、<br />
alphaImageLoaderを使わずにVMLで透過を実現しているのが特徴。<br />
パフォーマンスも比較的上々のようです。</p>



<h3 class="wp-block-heading">IE8でエラーが出る</h3>



<p>が、困ったことにIE6向けのライブラリであるが為か、<br />
IE8で走らせようとするとエラーが出ます。<br />
今回のお題はIE6～8全てに関わる物なのですが、困りました。</p>



<h3 class="wp-block-heading">jQuery移植版を使用する</h3>



<p>探してみたところ、DD_belatedPNGをjQueryプラグインとして移植した記事を発見。<br />
そこらへんの問題も解決してくださったみたいです。素晴らしい！</p>



<dl>
<dt>該当記事</dt>
<dd><a href="http://wakuworks.jugem.jp/?eid=153">DD_belatedPNG を改造して、jQuery.belatedPNG を作ってみた | プログラマ気分</a></dd>
<dt>リポジトリ</dt>
<dd><a href="https://github.com/wakuworks/jquery.belatedPNG/">wakuworks/jquery.belatedPNG &#8211; GitHub</a></dd>
</dl>



<h2 class="wp-block-heading">jquery.belatedPNG.jsで試してみよう</h2>



<p>jquery.belatedPNG.jsは、<br />
jQueryオブジェクトにfixPng()メソッドを提供します。<br />
こんな感じにしてみる。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">$(<span class="hljs-string">".test"</span>).fixPng().css(<span class="hljs-string">"opacity"</span>,<span class="hljs-string">"0.5"</span>);
</code></span></pre>


<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/_JJkNs5Ixl70/TVu99irjazI/AAAAAAAABME/sqTbHGUerLQ/20110216c.png" alt="jquery.belatedPNG.jsで試してみよう"/></figure>



<p></p>



<p>opacityを設定しても汚くならない！素晴らしい！</p>



<h3 class="wp-block-heading">マウスイベントが効かなくなる問題</h3>



<p>ただ、このままだとa要素に対するマウスイベントが効かなくなってしまう模様。<br />
CSSで設定した:hoverのスタイルも適用されず、<br />
クリックしてもウンともスンともいいません。</p>



<p>なので、子要素に「透明な何か」を入れてあげる事で解決を試みます。 例えば透過Gif。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"test"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"trans.gif"</span> <span class="hljs-attr">width</span>=<span class="hljs-string">"128"</span> <span class="hljs-attr">height</span>=<span class="hljs-string">"128"</span> <span class="hljs-attr">alt</span>=<span class="hljs-string">"Foobar"</span> /&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
</code></span></pre>


<p>これでマウスイベントがきちんと効くようになりました。<br />
hoverのスタイルも適用されます。</p>



<p>もしくは、同サイズの透明要素を中にappendしてやったり。</p>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-keyword">var</span> $test = $(<span class="hljs-string">".test"</span>);

<span class="hljs-comment">// opacityに非対応なブラウザに適用</span>
<span class="hljs-keyword">if</span>( !$.support.opacity ){
    $test.fixPng()
    .append(
        $(<span class="hljs-string">"&lt;span&gt;"</span>).css({
            display : <span class="hljs-string">"block"</span>,
            width : $test.width(),
            height : $test.height(),
            backgroundColor : <span class="hljs-string">"#ffffff"</span>,
            opacity : <span class="hljs-number">0</span>,
            cursor : <span class="hljs-string">"pointer"</span>
        })
    );
}

$test.css( <span class="hljs-string">"opacity"</span>, <span class="hljs-string">"0.5"</span> );
</code></span></pre>


<h2 class="wp-block-heading">まとめ</h2>



<p>
  jQueryのプラグインでfadeIn/fadeOut等を使うとopacityが弄られますが、<br /> その影響でこの不具合に遭遇する事があるので注意したいですね。
</p>



<p>
  マウスイベントの件は、他に良い解決策あったら知りたいです！
</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
