<?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>understandard &#187; jQuery</title>
	<atom:link href="http://www.understandard.net/category/javascript/jquery/feed" rel="self" type="application/rss+xml" />
	<link>http://www.understandard.net</link>
	<description>雑記と HTML、CSS、WordPress について</description>
	<lastBuildDate>Thu, 02 Feb 2012 05:56:04 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>異なる高さのブロックの高さを揃えるスクリプト まとめ</title>
		<link>http://www.understandard.net/javascript/javascript005.html</link>
		<comments>http://www.understandard.net/javascript/javascript005.html#comments</comments>
		<pubDate>Sat, 04 Dec 2010 09:50:39 +0000</pubDate>
		<dc:creator>じゅん</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.understandard.net/?p=441</guid>
		<description><![CDATA[異なる高さのブロックの高さを揃えようとすると、CSS だけでは制御できなかったり面倒だったり…なので、ここは JavaScript の力を借りることに。 jQuery 非依存のもの 今は jQuery に頼ることが多いで [...]<dl class="relatives">
<dt><span>関連投稿</span></dt>
<dd><ul>
<li>
<a href="http://www.understandard.net/javascript/javascript001.html" rel="bookmark">要素の高さをそろえる jQuery プラグイン The EqualHeights jQuery Plugin</a><!-- (20.9)-->
<div class="info">
<span class="category">category: <a href="http://www.understandard.net/category/javascript" title="JavaScript の投稿をすべて表示" rel="category tag">JavaScript</a> &gt; <a href="http://www.understandard.net/category/javascript/jquery" title="jQuery の投稿をすべて表示" rel="category tag">jQuery</a></span>
<span class="tags">tags: <a href="http://www.understandard.net/tag/javascript" rel="tag">JavaScript</a>+<a href="http://www.understandard.net/tag/jquery" rel="tag">jQuery</a>.</span>
</div>
</li>
<li>
<a href="http://www.understandard.net/javascript/javascript004.html" rel="bookmark">タイル状にアニメーションして画像を切り替える jQuery プラグイン jFancyTile</a><!-- (14.1)-->
<div class="info">
<span class="category">category: <a href="http://www.understandard.net/category/javascript" title="JavaScript の投稿をすべて表示" rel="category tag">JavaScript</a> &gt; <a href="http://www.understandard.net/category/javascript/jquery" title="jQuery の投稿をすべて表示" rel="category tag">jQuery</a></span>
<span class="tags">tags: <a href="http://www.understandard.net/tag/javascript" rel="tag">JavaScript</a>+<a href="http://www.understandard.net/tag/jquery" rel="tag">jQuery</a>.</span>
</div>
</li>
<li>
<a href="http://www.understandard.net/javascript/javascript002.html" rel="bookmark">IE6で透過 PNG を使えるようにする JavaScript DD_belatedPNG</a><!-- (13.9)-->
<div class="info">
<span class="category">category: <a href="http://www.understandard.net/category/javascript" title="JavaScript の投稿をすべて表示" rel="category tag">JavaScript</a></span>
<span class="tags">tags: <a href="http://www.understandard.net/tag/ie6" rel="tag">IE6</a>+<a href="http://www.understandard.net/tag/javascript" rel="tag">JavaScript</a>+<a href="http://www.understandard.net/tag/transparent-png" rel="tag">透過 PNG</a>.</span>
</div>
</li>
</ul>
</dd>
</dl>
]]></description>
			<content:encoded><![CDATA[<p>異なる高さのブロックの高さを揃えようとすると、CSS だけでは制御できなかったり面倒だったり…なので、ここは JavaScript の力を借りることに。</p>
<h2>jQuery 非依存のもの</h2>
<p>今は jQuery に頼ることが多いですが、他のライブラリなどとの相性で使えない場合などもあるかと思うので、まずはjQuery 非依存のスクリプト。</p>
<h3>heightLine.js</h3>
<p><a href="http://blog.webcreativepark.net/2007/07/26-010338.html">ブロックレベル要素の高さを揃えるheightLine.js[to-R]</a></p>
<p>読み込む JavaScript は1つ。<br />
スクリプトまでのパスは適宜変更してください。</p>
<pre>
&lt;script type=&quot;text/javascript&quot; src=&quot;path/heightLine.js&quot;&gt;&lt;/script&gt;
</pre>
<h4>指定方法1</h4>
<p>heightLine という class を指定した要素の高さが揃います。</p>
<pre>&lt;div class=&quot;sample&quot;&gt;
    &lt;div class=&quot;heightLine&quot;&gt;
        &lt;p&gt;sample&lt;/p&gt;
        &lt;p&gt;sample&lt;/p&gt;
    &lt;/div&gt;
    &lt;div class=&quot;heightLine&quot;&gt;
        &lt;p&gt;sample&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;</pre>
<h4>指定方法2</h4>
<p>heightLine の後ろに -(ハイフン)と好きなグループ名を付けた class を指定すると、各グループで高さが揃います。</p>
<pre>&lt;div class=&quot;sample&quot;&gt;
    &lt;div&gt;
        &lt;p class=&quot;heightLine-group1&quot;&gt;sample&lt;br /&gt;sample&lt;/p&gt;
        &lt;p class=&quot;heightLine-group2&quot;&gt;sample&lt;/p&gt;
    &lt;/div&gt;
    &lt;div class=&quot;heightLine&quot;&gt;
        &lt;p class=&quot;heightLine-group1&quot;&gt;sample&lt;/p&gt;
        &lt;p class=&quot;heightLine-group2&quot;&gt;sample&lt;br /&gt;sample&lt;br /&gt;sample&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;</pre>
<h4>指定方法3</h4>
<p>heightLineParent という class を指定した要素の子要素の高さが揃います。</p>
<pre>&lt;div class=&quot;heightLineParent&quot;&gt;
    &lt;div class=&quot;sample1&quot;&gt;
        &lt;p&gt;sample&lt;/p&gt;
        &lt;p&gt;sample&lt;/p&gt;
    &lt;/div&gt;
    &lt;div class=&quot;sample2&quot;&gt;
        &lt;p&gt;sample&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;</pre>
<p>状態によっていろいろな指定方法ができ、便利なスクリプトですが、1秒ごとに文字サイズを取得して高さの再計算を行なうため、拡縮のタイミングと若干ズレが生じます。<br />
待てばちゃんと高さが揃うので問題ないのですが、気になる人はここが気になるかもしれません。<br />
なお、このスクリプトは MIT ライセンスで公開されています。</p>
<h2>jQuery プラグイン</h2>
<p>いろいろなものがあるようですが、ここ最近使った2つ紹介。</p>
<h3>fixHeight.js</h3>
<p><a href="http://www.starryworks.co.jp/blog/tips/javascript/fixheightjs.html">複数のブロック要素の高さを揃えてくれる「fixHeight.js」をアップデートしました | Blog | STARRYWORKS inc.</a></p>
<p>jQuery プラグインなので、jQuery と fixHeight.js を読み込んで置く必要があります。<br />
スクリプトまでのパスは適宜変更してください。</p>
<pre>
&lt;script type=&quot;text/javascript&quot; src=&quot;path/jquery.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;path/fixHeight.js&quot;&gt;&lt;/script&gt;
</pre>
<h4>指定方法1</h4>
<p>fixheight という class を指定した要素の子要素同士の高さが揃います。<br />
下の例の場合、fixheight の子要素である sample1と sample2の高さが揃います。</p>
<pre>&lt;div class=&quot;fixheight&quot;&gt;
    &lt;div class=&quot;sample1&quot;&gt;
        &lt;p&gt;sample&lt;/p&gt;
        &lt;p&gt;sample&lt;/p&gt;
    &lt;/div&gt;
    &lt;div class=&quot;sample2&quot;&gt;
        &lt;p&gt;sample&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;</pre>
<p>子要素が多く、子要素が2行以上になった場合には、全要素の高さを揃えるのではなく、各行の中で高さが揃います。</p>
<h4>指定方法2</h4>
<p>fixHeightChild という class を指定した要素同士の高さが揃います。</p>
<pre>&lt;div class=&quot;sample&quot;&gt;
    &lt;div class=&quot;fixHeightChild&quot;&gt;
        &lt;p&gt;sample&lt;/p&gt;
        &lt;p&gt;sample&lt;/p&gt;
    &lt;/div&gt;
    &lt;div class=&quot;fixHeightChild&quot;&gt;
        &lt;p&gt;sample&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;</pre>
<h4>指定方法3</h4>
<p>fixHeightChild のあとに任意の文字列を繋げた class が指定された要素同士の高さが揃います。<br />
下の例の場合、fixHeightChildParagraph が指定された p タグの高さが揃います。</p>
<pre>&lt;div class=&quot;sample&quot;&gt;
    &lt;div&gt;
        &lt;p class=&quot;fixHeightChildParagraph&quot;&gt;sample&lt;/p&gt;
        &lt;p&gt;sample&lt;/p&gt;
    &lt;/div&gt;
    &lt;div&gt;
        &lt;p class=&quot;fixHeightChildParagraph&quot;&gt;sample&lt;br /&gt;sample&lt;/p&gt;
        &lt;p&gt;sample&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;</pre>
<p>先に挙げた heightLine.js とほぼ同じ指定の仕方で指定できます。<br />
なお、このスクリプトは MIT ライセンスで公開されています。</p>
<h3>jquery.flatheights.js</h3>
<p><a href="http://www.akatsukinishisu.net/itazuragaki/js/i20070801.html">jQuery でブロック要素の高さを揃えてみる &#8211; 徒書</a></p>
<p>こちらも jQuery プラグインなので、jQuery と jquery.flatheights.js を読み込んで置く必要があります。<br />
スクリプトまでのパスは適宜変更してください。</p>
<pre>
&lt;script type=&quot;text/javascript&quot; src=&quot;path/jquery.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;path/jquery.flatheights.js&quot;&gt;&lt;/script&gt;</pre>
<p>上記2つのスクリプトを読み込み、高さを揃えたい要素に対し、flatHeights() メソッドを実行します。</p>
<h4>指定方法1</h4>
<p>$() の中は jQuery で指定できる形式ならなんでも指定できるよう。<br />
カンマ区切りでの複数の指定ももちろんできます。</p>
<pre>$(function(){
    $('.boxes').flatHeights(); // .boxes が付けられた要素の高さが揃う
    $('#box1 &gt; div').flatHeights(); // #box1 の子要素（例では div）の高さが揃う
    $('#box2, #box3, #box4').flatHeights(); // 指定した要素同士の高さが揃う
});</pre>
<h4>指定方法2</h4>
<p>各行で要素の高さを揃えたい場合、fixHeight.js は自動でやってくれましたが、jquery.flatheights.js はちょっと指定が複雑になります。<br />
例は各行が4つずつの場合。</p>
<pre>$(function(){
    var sets = [], temp = [];
    $('#box5 &gt; div').each(function(i){
        temp.push(this);
        if (i % 4 == 3){ // 1行の数を指定し、1を引いた数を右に指定
            sets.push(temp);
            temp = [];
        }
    });
    if (temp.length) sets.push(temp);

    $.each(sets, function(){
        $(this).flatHeights();
    });
});</pre>
<p>先に挙げた2つとの違いは<strong>既存の HTML で使用する際にスクリプト用の指定を追記をしなくていい</strong>ということ。<br />
適用される範囲を調整するために id や class の追記が必要な場合もあるかもしれませんが、基本的には指定を追加しなくて大丈夫です。<br />
なお、このスクリプトは MIT ライセンスで公開されています。</p>
<h2>まとめ</h2>
<p>jQuery プラグインのものは初めて使ったものが動作が遅く、heightLine.js を使用することがほとんどでしたが、上で挙げた2つのプラグインはそこまでのもたつきは感じなかったです。<br />
また、秒ごとの監視ではなく、<strong>文字の拡縮動作を監視し、動作があったときに高さが変わる</strong>ので、最近は jQuery プラグインのものを使うことが多いです。</p>
<p>今回紹介した jQuery プラグイン2つの大きな違いは適用される箇所の指定を HTML 側で指定するか、JavaScript 側で指定するかです。<br />
僕は HTML 側に直接いろいろと class を追加するのが好きじゃないので、jquery.flatheight.js を使うことが多いです。</p>
<p>JavaScript を使用することで、泣く泣く変更をお願いしていたようなデザインが実現できるようになることもあるので、作者の方々に感謝の言葉しか出てきません。ホント助かってます。ありがとうございます。</p>
<p>他にもこんな素晴らしいプラグインがあるよという方はぜひぜひ教えてください。</p>
<dl class="relatives">
<dt><span>関連投稿</span></dt>
<dd><ul>
<li>
<a href="http://www.understandard.net/javascript/javascript001.html" rel="bookmark">要素の高さをそろえる jQuery プラグイン The EqualHeights jQuery Plugin</a><!-- (20.9)-->
<div class="info">
<span class="category">category: <a href="http://www.understandard.net/category/javascript" title="JavaScript の投稿をすべて表示" rel="category tag">JavaScript</a> &gt; <a href="http://www.understandard.net/category/javascript/jquery" title="jQuery の投稿をすべて表示" rel="category tag">jQuery</a></span>
<span class="tags">tags: <a href="http://www.understandard.net/tag/javascript" rel="tag">JavaScript</a>+<a href="http://www.understandard.net/tag/jquery" rel="tag">jQuery</a>.</span>
</div>
</li>
<li>
<a href="http://www.understandard.net/javascript/javascript004.html" rel="bookmark">タイル状にアニメーションして画像を切り替える jQuery プラグイン jFancyTile</a><!-- (14.1)-->
<div class="info">
<span class="category">category: <a href="http://www.understandard.net/category/javascript" title="JavaScript の投稿をすべて表示" rel="category tag">JavaScript</a> &gt; <a href="http://www.understandard.net/category/javascript/jquery" title="jQuery の投稿をすべて表示" rel="category tag">jQuery</a></span>
<span class="tags">tags: <a href="http://www.understandard.net/tag/javascript" rel="tag">JavaScript</a>+<a href="http://www.understandard.net/tag/jquery" rel="tag">jQuery</a>.</span>
</div>
</li>
<li>
<a href="http://www.understandard.net/javascript/javascript002.html" rel="bookmark">IE6で透過 PNG を使えるようにする JavaScript DD_belatedPNG</a><!-- (13.9)-->
<div class="info">
<span class="category">category: <a href="http://www.understandard.net/category/javascript" title="JavaScript の投稿をすべて表示" rel="category tag">JavaScript</a></span>
<span class="tags">tags: <a href="http://www.understandard.net/tag/ie6" rel="tag">IE6</a>+<a href="http://www.understandard.net/tag/javascript" rel="tag">JavaScript</a>+<a href="http://www.understandard.net/tag/transparent-png" rel="tag">透過 PNG</a>.</span>
</div>
</li>
</ul>
</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.understandard.net/javascript/javascript005.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>タイル状にアニメーションして画像を切り替える jQuery プラグイン jFancyTile</title>
		<link>http://www.understandard.net/javascript/javascript004.html</link>
		<comments>http://www.understandard.net/javascript/javascript004.html#comments</comments>
		<pubDate>Thu, 25 Mar 2010 12:15:20 +0000</pubDate>
		<dc:creator>じゅん</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.understandard.net/javascript/javascript004.html</guid>
		<description><![CDATA[今まで見た画像切り替えプラグインの中で一番、「おぉぉ」となった jQuery プラグイン、jFancyTile。 何はともあれ、YouTube で公開されている動画を見てみてください！ YouTube &#8211; j [...]<dl class="relatives">
<dt><span>関連投稿</span></dt>
<dd><ul>
<li>
<a href="http://www.understandard.net/javascript/javascript001.html" rel="bookmark">要素の高さをそろえる jQuery プラグイン The EqualHeights jQuery Plugin</a><!-- (26.7)-->
<div class="info">
<span class="category">category: <a href="http://www.understandard.net/category/javascript" title="JavaScript の投稿をすべて表示" rel="category tag">JavaScript</a> &gt; <a href="http://www.understandard.net/category/javascript/jquery" title="jQuery の投稿をすべて表示" rel="category tag">jQuery</a></span>
<span class="tags">tags: <a href="http://www.understandard.net/tag/javascript" rel="tag">JavaScript</a>+<a href="http://www.understandard.net/tag/jquery" rel="tag">jQuery</a>.</span>
</div>
</li>
<li>
<a href="http://www.understandard.net/javascript/javascript002.html" rel="bookmark">IE6で透過 PNG を使えるようにする JavaScript DD_belatedPNG</a><!-- (12.9)-->
<div class="info">
<span class="category">category: <a href="http://www.understandard.net/category/javascript" title="JavaScript の投稿をすべて表示" rel="category tag">JavaScript</a></span>
<span class="tags">tags: <a href="http://www.understandard.net/tag/ie6" rel="tag">IE6</a>+<a href="http://www.understandard.net/tag/javascript" rel="tag">JavaScript</a>+<a href="http://www.understandard.net/tag/transparent-png" rel="tag">透過 PNG</a>.</span>
</div>
</li>
<li>
<a href="http://www.understandard.net/javascript/javascript003.html" rel="bookmark">キャラクターと背景が動きまくる jQuery プラグイン（おまけつき） jQuery.spritely</a><!-- (11.5)-->
<div class="info">
<span class="category">category: <a href="http://www.understandard.net/category/javascript" title="JavaScript の投稿をすべて表示" rel="category tag">JavaScript</a> &gt; <a href="http://www.understandard.net/category/javascript/jquery" title="jQuery の投稿をすべて表示" rel="category tag">jQuery</a></span>
<span class="tags">tags: <a href="http://www.understandard.net/tag/javascript" rel="tag">JavaScript</a>+<a href="http://www.understandard.net/tag/jquery" rel="tag">jQuery</a>.</span>
</div>
</li>
</ul>
</dd>
</dl>
]]></description>
			<content:encoded><![CDATA[<p>今まで見た画像切り替えプラグインの中で一番、「おぉぉ」となった jQuery プラグイン、jFancyTile。<br />
何はともあれ、YouTube で公開されている動画を見てみてください！</p>
<p><object data="http://www.youtube.com/v/2tzUJ0bWRHg?fs=1&amp;hl=ja_JP&amp;rel=0" type="application/x-shockwave-flash"  width="480" height="390"><param name="movie" value="http://www.youtube.com/v/2tzUJ0bWRHg?fs=1&amp;hl=ja_JP&amp;rel=0" /><a href="http://www.youtube.com/v/2tzUJ0bWRHg?fs=1&amp;hl=ja_JP&amp;rel=0">YouTube &#8211; jFancyTile: A jQuery tile shifting image viewer plugin</a><br />
</object></p>
<p>FLASH と見間違えてもおかしくないです。<br />
jQuery ってすごいなーとしみじみ。</p>
<p><a href="http://www.marcofolio.net/webdesign/jfancytile_a_jquery_tile_shifting_image_viewer_plugin.html">jFancyTile: A jQuery tile shifting image viewer plugin</a><br />
（<a href="http://demo.marcofolio.net/jfancytile/">デモ</a>）</p>
<p>このプラグインは、ここに触発されて作ったそうです。これもすごくかっこいいです。<br />
<a href="http://tutorialzine.com/2010/03/mosaic-slideshow-jquery-css/">Making a Mosaic Slideshow With jQuery &amp; CSS</a></p>
<h2>使い方</h2>
<p>画像表示部分の指定は以下の通り</p>
<pre>&lt;div id="selector"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;img src="images/img01.jpg" alt="Title 01" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;img src="images/img02.jpg" alt="Title 02" /&gt;&lt;/li&gt;
&lt;!-- More images --&gt;
&lt;/ul&gt;
&lt;/div&gt;</pre>
<p>見て分かるように、<strong>特殊なコーディングテクニックは必要ない</strong>です。必要なのは、囲む div に id を付けること。<br />
画像の alt に入れたテキストが画像の上に表示されます。</p>
<p>&lt;head&gt; 内で必要なファイルを読み込み、jfancytile() の指定をします。<br />
CSS の内容、ファイルまでのパスは適宜変更してください。</p>
<pre>&lt;head&gt;
&lt;link rel="stylesheet" type="text/css" href="css/jfancytile.css"/&gt;
&lt;script type="text/javascript" src="js/jquery.jfancytile.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
$("#selector").jfancytile();
&lt;/script&gt;
&lt;/head&gt;</pre>
<p>デフォルトのままのセッティングでいいのであれば、ここで終了。デモ1と同じように動くはずです。</p>
<h3>挙動のカスタマイズ</h3>
<p>デモ2のように、プラグインの挙動をカスタマイズしたい場合、以下のものを調整してみてください（書かれているのはデフォルト値）。</p>
<pre>$("#selector").jfancytile({
inEasing: "swing",
outEasing: "swing",
inSpeed: 1000,
outSpeed: 1000,
rowCount: 8,
columnCount: 13,
maxTileShift: 3
});</pre>
<dl>
<dt>inEasing</dt>
<dd>タイルから画像に変化する時のイージングアニメーション</dd>
<dt>outEasing</dt>
<dd>画像からタイルに変化する時のイージングアニメーション</dd>
<dt>inSpeed</dt>
<dd>タイルから画像に変化する時のアニメーションスピード（ミリ秒）</dd>
<dt>outSpeed</dt>
<dd>画像からタイルに変化する時のアニメーションスピード（ミリ秒）</dd>
<dt>rowCount</dt>
<dd>列の数（数が多くなるとタイルの高さが低くなる）</dd>
<dt>columnCount</dt>
<dd>段の数（数が多くなるとタイルの横幅が狭くなる）</dd>
<dt>maxTileShift</dt>
<dd>タイルが移動できる位置の最大量</dd>
</dl>
<p>イージングの動きはかなり種類があるので（違いが微妙なものもありますが）、好みのアニメーションを選びましょう。<br />
それぞれの動きは、<a href="http://gsgd.co.uk/sandbox/jquery/easing/">jQuery Easing Plugin</a> の Example をいろいろ試して確認してみてください。</p>
<h2>プラグインがどのように動いているか</h2>
<p>プラグインが実際どのようにうごいているか、という内容です。<br />
使用する上ではしらなくても大丈夫なので、興味がない場合はすっ飛ばしてください。</p>
<ol>
<li>画像を解析して、alt の内容・サイズ・画像のソースを取得する</li>
<li>一番大きな画像のサイズに合わせて囲いを作る</li>
<li>HTML から &lt;li&gt; を除去する</li>
<li>ナビゲーションボタンを作って、囲いの中に入れる</li>
<li>rowCount と columnCount に基づいて、必要なタイルの数を計算する</li>
<li>各タイル用の div を作って、タイルを作る</li>
<li>background-image に画像を適用し、background-position で正しい位置に画像をずらす。</li>
<li>タイルの集合に title を追加する</li>
<li>ランダム位置とフェードアウトする機能を追加する</li>
<li>指定した位置とフェードインする機能を追加する</li>
</ol>
<p>という流れでこのプラグインが動いているそうです。</p>
<h2>既知の問題</h2>
<dl>
<dt>CPU に負荷がかかる。</dt>
<dd>rowCount、columnCount の値が大きすぎると、ブラウザがクラッシュする。</dd>
<dt>時々画像のプロパティが読み込めず、極端に小さいサイズになってしまう。</dt>
<dd>リロードすればちゃんと動くようになるけど、ちょっとね…。</dd>
<dt>Firefox に比べて、Chrome と Safari の挙動がちょっと違う。</dt>
<dd>画像が全部読み込まれた後であれば、Chrome/Safari の挙動が正しい挙動。</dd>
</dl>
<h2>まとめ</h2>
<p>Firefox では不安定、Chrome と Safai では重いですね。<br />
動きは素晴らしいと思うだけに残念です。</p>
<p>また、僕の検証環境では IE6、IE7で動作しませんでした。<br />
画像のおもしろい見せ方ができるプラグインですが、日本国内では IE6、IE7ユーザーがまだまだ多いようなので、使いどころは難しいかもしれません。</p>
<dl class="relatives">
<dt><span>関連投稿</span></dt>
<dd><ul>
<li>
<a href="http://www.understandard.net/javascript/javascript001.html" rel="bookmark">要素の高さをそろえる jQuery プラグイン The EqualHeights jQuery Plugin</a><!-- (26.7)-->
<div class="info">
<span class="category">category: <a href="http://www.understandard.net/category/javascript" title="JavaScript の投稿をすべて表示" rel="category tag">JavaScript</a> &gt; <a href="http://www.understandard.net/category/javascript/jquery" title="jQuery の投稿をすべて表示" rel="category tag">jQuery</a></span>
<span class="tags">tags: <a href="http://www.understandard.net/tag/javascript" rel="tag">JavaScript</a>+<a href="http://www.understandard.net/tag/jquery" rel="tag">jQuery</a>.</span>
</div>
</li>
<li>
<a href="http://www.understandard.net/javascript/javascript002.html" rel="bookmark">IE6で透過 PNG を使えるようにする JavaScript DD_belatedPNG</a><!-- (12.9)-->
<div class="info">
<span class="category">category: <a href="http://www.understandard.net/category/javascript" title="JavaScript の投稿をすべて表示" rel="category tag">JavaScript</a></span>
<span class="tags">tags: <a href="http://www.understandard.net/tag/ie6" rel="tag">IE6</a>+<a href="http://www.understandard.net/tag/javascript" rel="tag">JavaScript</a>+<a href="http://www.understandard.net/tag/transparent-png" rel="tag">透過 PNG</a>.</span>
</div>
</li>
<li>
<a href="http://www.understandard.net/javascript/javascript003.html" rel="bookmark">キャラクターと背景が動きまくる jQuery プラグイン（おまけつき） jQuery.spritely</a><!-- (11.5)-->
<div class="info">
<span class="category">category: <a href="http://www.understandard.net/category/javascript" title="JavaScript の投稿をすべて表示" rel="category tag">JavaScript</a> &gt; <a href="http://www.understandard.net/category/javascript/jquery" title="jQuery の投稿をすべて表示" rel="category tag">jQuery</a></span>
<span class="tags">tags: <a href="http://www.understandard.net/tag/javascript" rel="tag">JavaScript</a>+<a href="http://www.understandard.net/tag/jquery" rel="tag">jQuery</a>.</span>
</div>
</li>
</ul>
</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.understandard.net/javascript/javascript004.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>キャラクターと背景が動きまくる jQuery プラグイン（おまけつき） jQuery.spritely</title>
		<link>http://www.understandard.net/javascript/javascript003.html</link>
		<comments>http://www.understandard.net/javascript/javascript003.html#comments</comments>
		<pubDate>Fri, 12 Mar 2010 06:25:39 +0000</pubDate>
		<dc:creator>じゅん</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.understandard.net/?p=345</guid>
		<description><![CDATA[ロンドンにある Artlogic Media Ltd. という会社が公開している jQuery プラグイン、jQuery.spritely がおもしろかったので、紹介がてらポスト。 公開したのが2010年3月10日という [...]<dl class="relatives">
<dt><span>関連投稿</span></dt>
<dd><ul>
<li>
<a href="http://www.understandard.net/javascript/javascript001.html" rel="bookmark">要素の高さをそろえる jQuery プラグイン The EqualHeights jQuery Plugin</a><!-- (15.8)-->
<div class="info">
<span class="category">category: <a href="http://www.understandard.net/category/javascript" title="JavaScript の投稿をすべて表示" rel="category tag">JavaScript</a> &gt; <a href="http://www.understandard.net/category/javascript/jquery" title="jQuery の投稿をすべて表示" rel="category tag">jQuery</a></span>
<span class="tags">tags: <a href="http://www.understandard.net/tag/javascript" rel="tag">JavaScript</a>+<a href="http://www.understandard.net/tag/jquery" rel="tag">jQuery</a>.</span>
</div>
</li>
<li>
<a href="http://www.understandard.net/javascript/javascript002.html" rel="bookmark">IE6で透過 PNG を使えるようにする JavaScript DD_belatedPNG</a><!-- (5.1)-->
<div class="info">
<span class="category">category: <a href="http://www.understandard.net/category/javascript" title="JavaScript の投稿をすべて表示" rel="category tag">JavaScript</a></span>
<span class="tags">tags: <a href="http://www.understandard.net/tag/ie6" rel="tag">IE6</a>+<a href="http://www.understandard.net/tag/javascript" rel="tag">JavaScript</a>+<a href="http://www.understandard.net/tag/transparent-png" rel="tag">透過 PNG</a>.</span>
</div>
</li>
</ul>
</dd>
</dl>
]]></description>
			<content:encoded><![CDATA[<p>ロンドンにある Artlogic Media Ltd. という会社が公開している jQuery プラグイン、jQuery.spritely がおもしろかったので、紹介がてらポスト。<br />
公開したのが2010年3月10日ということなので、公開ほやほやなプラグインのようです。</p>
<p>このプラグインを使用すると、FLASH のような動きを、iPhone のような FLASH 非対応のデバイスでも見られるようになります。<br />
※“クリック”と書いてある箇所は iPhone などのデバイスでは、“タッチ”になります。</p>
<p><a href="http://spritely.net/">jQuery Spritely | Spritel</a><br />
※リンク先がデモも兼ねています。</p>
<p>ページを開くと、背景がスクロールしていて、その上に鳥が2羽飛んでいます。<br />
<a rel="lightbox" href="/images/post/javascript/003/003-1.jpg"><img title="003-1.jpg" src="/images/post/javascript/003/.thumbs/.003-1.jpg" alt="003-1.jpg" width="240" height="113" /></a></p>
<p>これだけでも充分すごいんですが、ページのどこかをクリックすると…</p>
<p><a rel="lightbox" href="/images/post/javascript/003/003-2.jpg"><img title="003-2.jpg" src="/images/post/javascript/003/.thumbs/.003-2.jpg" alt="003-2.jpg" width="240" height="113" /></a><br />
<strong>マウスのある場所まで降りてくる！</strong></p>
<p>背景がスクロールしているエリアから飛び出して、本文のところまで降りてきてくれます。<br />
うっかりクリックしちゃっても降りてくるので、若干うざったいところもありますね。</p>
<p>下にテキストがあろうが、画像があろうが関係なく降りてきます。<br />
邪魔なときはちょっと離れたところをクリックして、どいてもらいましょう。</p>
<p>そして、鳥が2羽いるのにも意味があります。<br />
飛んでこないほうの鳥をクリックすると…なんと、飛んでくる鳥が入れ替わるんですｗ</p>
<h2>プラグインについて</h2>
<p>このプラグインで使用するのは、sprite() と pan() の2つだけ。簡単です。<br />
この2つのメソッドで、要素に指定している背景画像のアニメーションが実現できます。</p>
<p>2つのメソッドの違いは</p>
<ul>
<li>pan は背景画像を左右どちらかからもう一方にスライドして、それを繰り返す</li>
<li>sprite にはフレームという概念がある</li>
</ul>
<p>ということ。<br />
詳しくは以下の参照。</p>
<h2>sprite()</h2>
<p>サンプルで使われているのは鳥の部分。<br />
鳥の画像はこれ。<br />
<img title="bird_180x180.png" src="/images/post/javascript/003/bird_180x180.png" alt="bird_180x180.png" width="540" height="123" /><br />
この画像を3コマの繰り返しにするならフレームの指定は、</p>
<pre>$('#bird').sprite({fps: 12, no_of_frames: 3});</pre>
<p>と、こんな感じでできます。<br />
つまり、CSS Sprite を使って、それを切り替えることでアニメーションにしているってことですね。<br />
上のコードだと、画像を3コマに分割して（no_of_frames: 3の部分）、1秒間に12コマのアニメーションになります。</p>
<p>デモページのように、クリックでマウス位置まで降りてくるようにするなら、</p>
<pre>$('#bird').sprite({fps: 12, no_of_frames: 3}).activeOnClick().active();
$('body').flyToTap();</pre>
<p>とすればできるようです。</p>
<p>active() はページを開いた時に sprite をアクティブにするメソッドで、activeOnClick() は、クリックした時に sprite をアクティブにするメソッドだそうです。<br />
$(&#8216;body&#8217;).flyToTap() の部分で、どこがクリックされたかを見て、sprite をクリックされた場所に移動させます。<br />
ランダム移動のメソッドが指定されている場合、数秒後に元にいた場所に戻ります。</p>
<p>sprite をランダム移動するには、以下のような指定をします（speed はミリ秒で指定）。</p>
<pre>$('#bird')
    .sprite({fps: 8, no_of_frames: 3}
    .spRandom({
        top: 70,
        left: 100,
        right: 200,
        bottom: 340,
        speed: 4000,
        pause: 3000
    });
</pre>
<h2>pan()</h2>
<p>デモページの丘の部分です。</p>
<p>div（サンプルでは #trees）に背景画像を指定して、その背景画像を background-repeat: repeat-x; と指定し、以下の指定をします。</p>
<pre>$('#trees').pan({fps: 30, speed: 2, dir: 'left'});</pre>
<p>スピード（1フレームあたりのピクセル数）と1秒あたりのフレーム数はそれぞれ個別に指定できます。<br />
1秒あたりのフレーム数を高くしすぎると、パフォーマンスが低下するので（特にモバイル）、アニメーションのスムースさとパフォーマンスの適正なバランスをとりましょう。</p>
<p>背景画像を多層にするには、単純に画像ををお互いの下に置くか、z-index を調整すればできます。<br />
遠い場所にあるものをより遅く動かすと、きれいに見えるそうです。</p>
<h2>小ネタ</h2>
<p>ページ内をクリックすると鳥が飛んできてくれるのは上で書きましたが、ページの最下部をクリックするとちょっと変な挙動に。</p>
<p>最下部で鳥を呼ぶと、ページの高さがちょっとだけ増えます。<br />
ということは、ページをもうちょっと下までスクロールできるようになります。</p>
<p>これを延々と繰り返すと、どんどん下までページを伸ばせる…という、どうでもいい小ネタです。</p>
<p>あ、でも隠しておいたテキストなりリンクなりを探させる、という使い方もあるかもしれませんね（そんなにないと思いますが）。</p>
<h2>まとめ</h2>
<p>対応ブラウザは以下の通り</p>
<ul>
<li>Internet Explorer 6以上</li>
<li>Firefox</li>
<li>Safari</li>
<li>Chrome</li>
<li>Opera</li>
</ul>
<p>バー ジョン番号が特に書いていないですが、おそらく最新版でテストしていると思われます。<br />
また、モバイルでは、iPhone、iPad、iPod Touch に対応しているそうです。</p>
<p>モバイルでも快適に動作させるためにも、過剰な使用は避けましょうとのこと。</p>
<p>ライセンスは、jQuery 本体と同じく、MIT もしくは GPL Version 2のデュアルライセンスということになっています。<br />
利用者は商用・非商用を問わず無料で使用できるとのことです。</p>
<p>この記事を書いている時点でのバージョンは0.1と、まだまだ開発が進みそうなプラグイン。<br />
今後どのようにパワーアップしてくれるのか楽しみです。</p>
<dl class="relatives">
<dt><span>関連投稿</span></dt>
<dd><ul>
<li>
<a href="http://www.understandard.net/javascript/javascript001.html" rel="bookmark">要素の高さをそろえる jQuery プラグイン The EqualHeights jQuery Plugin</a><!-- (15.8)-->
<div class="info">
<span class="category">category: <a href="http://www.understandard.net/category/javascript" title="JavaScript の投稿をすべて表示" rel="category tag">JavaScript</a> &gt; <a href="http://www.understandard.net/category/javascript/jquery" title="jQuery の投稿をすべて表示" rel="category tag">jQuery</a></span>
<span class="tags">tags: <a href="http://www.understandard.net/tag/javascript" rel="tag">JavaScript</a>+<a href="http://www.understandard.net/tag/jquery" rel="tag">jQuery</a>.</span>
</div>
</li>
<li>
<a href="http://www.understandard.net/javascript/javascript002.html" rel="bookmark">IE6で透過 PNG を使えるようにする JavaScript DD_belatedPNG</a><!-- (5.1)-->
<div class="info">
<span class="category">category: <a href="http://www.understandard.net/category/javascript" title="JavaScript の投稿をすべて表示" rel="category tag">JavaScript</a></span>
<span class="tags">tags: <a href="http://www.understandard.net/tag/ie6" rel="tag">IE6</a>+<a href="http://www.understandard.net/tag/javascript" rel="tag">JavaScript</a>+<a href="http://www.understandard.net/tag/transparent-png" rel="tag">透過 PNG</a>.</span>
</div>
</li>
</ul>
</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.understandard.net/javascript/javascript003.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>要素の高さをそろえる jQuery プラグイン The EqualHeights jQuery Plugin</title>
		<link>http://www.understandard.net/javascript/javascript001.html</link>
		<comments>http://www.understandard.net/javascript/javascript001.html#comments</comments>
		<pubDate>Fri, 12 Dec 2008 02:08:19 +0000</pubDate>
		<dc:creator>じゅん</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.understandard.net/?p=53</guid>
		<description><![CDATA[CSS Newbie というサイトで、簡単に要素の高さを揃えられる jQuery プラグインが公開されていました。 The EqualHeights jQuery Plugin demo jQuery と jquery. [...]<dl class="relatives">
<dt><span>関連投稿</span></dt>
<dd><ul>
<li>
<a href="http://www.understandard.net/css/css003.html" rel="bookmark">透過 PNG を使う時に注意すること2</a><!-- (7.5)-->
<div class="info">
<span class="category">category: <a href="http://www.understandard.net/category/css" title="CSS の投稿をすべて表示" rel="category tag">CSS</a></span>
<span class="tags">tags: <a href="http://www.understandard.net/tag/ie6" rel="tag">IE6</a>+<a href="http://www.understandard.net/tag/javascript" rel="tag">JavaScript</a>+<a href="http://www.understandard.net/tag/transparent-png" rel="tag">透過 PNG</a>.</span>
</div>
</li>
</ul>
</dd>
</dl>
]]></description>
			<content:encoded><![CDATA[<p>CSS Newbie というサイトで、簡単に要素の高さを揃えられる jQuery プラグインが公開されていました。</p>
<p><a href="http://www.cssnewbie.com/equalheights-jquery-plugin/">The EqualHeights jQuery Plugin</a><br />
<a href="http://www.cssnewbie.com/example/equal-heights/plugin.html">demo</a></p>
<p>jQuery と jquery.equalheights.js を読み込み</p>
<pre>&lt;script src="jquery.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;script src="jquery.equalheights.js" type="text/javascript"&gt;&lt;/script&gt;
</pre>
<p>下記のように要素の高さを揃えたい箇所を指定すれば、内要素が異なる高さを持つ要素の高さを揃えられます。</p>
<pre>$(document).ready(function() {
$(".columns").equalHeights(100,300);
});
</pre>
<p>上記の記述では、column というクラス名がついた要素に対して高さを揃えます。<br />
.equalHeights(100,300) の部分で min-height と max-height を指定できます。値として auto も使えるみたいです（<a href="http://www.cssnewbie.com/example/equal-heights/plugin.html">作者デモ</a>は auto を使っている）。300px を超えたらスクロールバーが出てきます。</p>
<p>既知のバグとして、要素内に画像を含み、その画像に height の指定がない場合、IE で正確に高さが計算できないことがあるそうです。その場合、スクリプトが高さをゼロとみなしてしまうようです。</p>
<p>また、いくつかのブラウザでリサイズ時にもう一度スクリプトを読まないといけない場合があるらしく、その場合は下記のようなスクリプトを書いてね、とのこと。</p>
<pre>$(".columns").resize(function(){
$(".columns").equalHeights();
});
</pre>
<p>ここまで書いておいて言うのもなんですが、こういう jQuery でやるのも楽だけど、<a href="http://www.yomotsu.net/works/081016cssnite/">ヨモツネットさんの記事（書籍などに紹介されていない display : inline-block について）</a>のほうが JavaScript に依存しないし、好きだな。</p>
<p>jQuery をガシガシ使いたい人は使ってみてください。</p>
<dl class="relatives">
<dt><span>関連投稿</span></dt>
<dd><ul>
<li>
<a href="http://www.understandard.net/css/css003.html" rel="bookmark">透過 PNG を使う時に注意すること2</a><!-- (7.5)-->
<div class="info">
<span class="category">category: <a href="http://www.understandard.net/category/css" title="CSS の投稿をすべて表示" rel="category tag">CSS</a></span>
<span class="tags">tags: <a href="http://www.understandard.net/tag/ie6" rel="tag">IE6</a>+<a href="http://www.understandard.net/tag/javascript" rel="tag">JavaScript</a>+<a href="http://www.understandard.net/tag/transparent-png" rel="tag">透過 PNG</a>.</span>
</div>
</li>
</ul>
</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.understandard.net/javascript/javascript001.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: www.understandard.net @ 2012-02-05 23:59:51 -->
