<?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/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>乱雑モックアップ &#187; javascript</title>
	<atom:link href="http://blog.sakurachiro.com/category/script/javascript-script/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sakurachiro.com</link>
	<description>らんざつ[乱雑] （名・形動）[文]ナリ 入り乱れていること。乱れていて秩序がないこと。また、そのさま。</description>
	<lastBuildDate>Mon, 06 Feb 2012 11:08:54 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/category/script/javascript-script/feed/" />
		<item>
		<title>[jQuery]$(this)の親要素や子要素を指定するには。</title>
		<link>http://blog.sakurachiro.com/2011/09/jquery-this-parent-children/</link>
		<comments>http://blog.sakurachiro.com/2011/09/jquery-this-parent-children/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 21:08:50 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[とりあえずメモ]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=2559</guid>
		<description><![CDATA[thisを使ってなかったからthisの子要素のアクセス方法が全くわからんかった。 当たり前だけどこんな風に出来無いわけですよね childrenを使うといいみたい。 親にはparent 参考 / まよねこ inside  [...]]]></description>
			<content:encoded><![CDATA[<p>thisを使ってなかったからthisの子要素のアクセス方法が全くわからんかった。</p>
<p>当たり前だけどこんな風に出来無いわけですよね</p>
<pre class="brush: plain; title: ; notranslate">$(&quot;this ul&quot;).addClass(&quot;hogehoge&quot;);</pre>
<p>childrenを使うといいみたい。</p>
<pre class="brush: jscript; title: ; notranslate">$(this).children(&quot;ul&quot;)</pre>
<p>親にはparent</p>
<pre class="brush: jscript; title: ; notranslate">$(this).parent()</pre>
<p>参考 / <a href="http://mayoneco.com/blog/2011/06/jquery_parent_child_2/">まよねこ inside » Blog Archive » 【jQuery】thisの親や子要素の指定方法[リライト版]</a></p>
<p><span class="note2">宿題</span><br />
ひろし+すみれのliからから友蔵+こたけのliを指定するにはどうしたらいいんだろうか。</p>
<pre class="brush: xml; title: ; notranslate">&lt;h1&gt;さくら家&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;name&quot;&gt;友蔵+こたけ&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;name&quot;&gt;ひろし+すみれ&lt;/span&gt;
&lt;ul&gt;
&lt;li class=&quot;name&quot;&gt;さきこ&lt;/li&gt;
&lt;li class=&quot;name&quot;&gt;まるこ&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2011/09/jquery-this-parent-children/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2011/09/jquery-this-parent-children/" />
	</item>
		<item>
		<title>photoshopでfireworksのカンバスを合わせる、的な事をする.jsx</title>
		<link>http://blog.sakurachiro.com/2011/06/photoshop-fit-canvas/</link>
		<comments>http://blog.sakurachiro.com/2011/06/photoshop-fit-canvas/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 19:01:45 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[jsx]]></category>
		<category><![CDATA[カンバスを合わせる]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=2502</guid>
		<description><![CDATA[fireworksの「カンバスを合わせる」って便利ですよね photoshopでも使いたい！と思い調べてみたところ イメージ &#8211; トリミングと イメージ &#8211; すべての領域を表示を組み合わせて 同じ [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.sakurachiro.com/wp-content/uploads/2011/06/20110602_1.png" rel="shadowbox[sbpost-2502];player=img;" title="カンバスをフィット"><img src="http://blog.sakurachiro.com/wp-content/uploads/2011/06/20110602_1.png" alt="[image]カンバスをフィット" title="カンバスをフィット" width="480" height="297" class="alignnone size-full wp-image-2507" /></a></p>
<p>fireworksの「カンバスを合わせる」って便利ですよね<br />
photoshopでも使いたい！と思い調べてみたところ<br />
<span class="note4">イメージ &#8211; トリミング</span>と<br />
<span class="note4">イメージ &#8211; すべての領域を表示</span>を組み合わせて<br />
同じような事が出来るみたいだったので<br />
.jsxに出来ないかなぁと試してみました。</p>
<p>不具合や必要ない記述があるかと思いますが、自分が使う範囲では困らない感じになったのでとりあえず公開してみます。</p>
<p><span id="more-2502"></span></p>
<p><a href="http://sakurachiro.com/_exercise/javascript/jsx/fit-canvas.jsx" title="カンバスを合わせるjsx">fit-canvas.jsx</a></p>
<p><span class="note2">例1 / before</span> これが<br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2011/06/20110602_3.png" rel="shadowbox[sbpost-2502];player=img;" title="例1 / before"><img src="http://blog.sakurachiro.com/wp-content/uploads/2011/06/20110602_3-480x335.png" alt="[image]例1 / before" title="例1 / before" width="480" height="335" class="alignnone size-large wp-image-2506" /></a></p>
<p><span class="note3">例1 / after</span> こうなる<br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2011/06/20110602_4.png" rel="shadowbox[sbpost-2502];player=img;" title="例1 / after"><img src="http://blog.sakurachiro.com/wp-content/uploads/2011/06/20110602_4-480x335.png" alt="[image]例1 / after" title="例1 / after" width="480" height="335" class="alignnone size-large wp-image-2505" /></a></p>
<p><span class="note2">例2 / before</span> オブジェクトがカンバスの外にはみ出てる場合<br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2011/06/20110602_5.png" rel="shadowbox[sbpost-2502];player=img;" title="例2 / before"><img src="http://blog.sakurachiro.com/wp-content/uploads/2011/06/20110602_5-480x335.png" alt="[image]例2 / before" title="例2 / before" width="480" height="335" class="alignnone size-large wp-image-2504" /></a></p>
<p><span class="note3">例2 / after</span> それを含めてから削る<br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2011/06/20110602_6.png" rel="shadowbox[sbpost-2502];player=img;" title="例2 / after"><img src="http://blog.sakurachiro.com/wp-content/uploads/2011/06/20110602_6-480x335.png" alt="[image]例2 / after" title="例2 / after" width="480" height="335" class="alignnone size-large wp-image-2503" /></a></p>
<h3>どんな使い方をしてるか</h3>
<p>大元のpsdからパーツを作成する時に<br />
レイヤーを複製で新規ファイルで作成して抽出してるんですけど<br />
その時に、元psdのカンバスサイズを引き継いでしまうので<br />
それを除去するのに使ってます。</p>
<p>※ &#8220;トリミング&#8221; と &#8220;すべての領域を表示&#8221; で削れない部分は削れません。</p>
<h4>超参考にしたページ</h4>
<p><a href="http://www.openspc2.org/book/PhotoshopCS4/">Adobe Photoshop CS4自動化作戦</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2011/06/photoshop-fit-canvas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2011/06/photoshop-fit-canvas/" />
	</item>
		<item>
		<title>スクロールバーを変更するjscrollpane.js</title>
		<link>http://blog.sakurachiro.com/2011/05/jquery-jscrollpane-js/</link>
		<comments>http://blog.sakurachiro.com/2011/05/jquery-jscrollpane-js/#comments</comments>
		<pubDate>Tue, 10 May 2011 13:07:11 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[とりあえずメモ]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[スクロールバー]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=2477</guid>
		<description><![CDATA[SAVEJAPAN! PROJECTのツイッターのスクロールバーのところが、 デザインにあってていいねぇなんて思いながら見ていたら だんだん自分でも使ってみたくなったので調べてみるとjscrollpaneというのを使って [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://savejapan.simone-inc.com/index.html">SAVEJAPAN! PROJECT</a>のツイッターのスクロールバーのところが、<br />
デザインにあってていいねぇなんて思いながら見ていたら<br />
だんだん自分でも使ってみたくなったので調べてみると<a href="http://jscrollpane.kelvinluck.com/index.html">jscrollpane</a>というのを使っているようでした。</p>
<p>これ2009年くらいに話題になったらしいんだけど、全く知りませんでした。。。</p>
<p>ここ / <a href="http://jscrollpane.kelvinluck.com/index.html">jScrollPane &#8211; cross browser styleable scrollbars with jQuery and CSS</a><br />
iframeも、親htmlにjsを追加するだけで(operaでマウスホイールが反応しなかったけど)スクロールバーを追加できたり<br />
子htmlに直接jsを追加する事でマウスホイールも反応するように出来るかんじ。</p>
<h3>練習</h3>
<p><a href="http://sakurachiro.com/_exercise/javascript/jScrollPane/">乱雑モックアップ｜jQueryでツイッターを取得してjscrollpaneを適用</a><br />
<a href="http://sakurachiro.com/_exercise/javascript/jScrollPane/" title="jQueryでツイッターを取得してjscrollpaneを適用のスクリーンショット"><img src="http://blog.sakurachiro.com/wp-content/uploads/2011/05/20110511_1.png" alt="[image]jQueryでツイッターを取得してjscrollpaneを適用のスクリーンショット" title="jQueryでツイッターを取得してjscrollpaneを適用のスクリーンショット" width="480" height="297" class="alignnone size-full wp-image-2479" /></a></p>
<h3>ツイッターをjQueryで読み込む方法の参考にしたページ</h3>
<p><a href="http://www.webopixel.net/javascript/9.html">jQueryでTwitterの自分のつぶやきを表示する | webOpixel</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2011/05/jquery-jscrollpane-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2011/05/jquery-jscrollpane-js/" />
	</item>
		<item>
		<title>iframeに開くページを、location.searchで受け取った値で変更させちゃっても問題ない？</title>
		<link>http://blog.sakurachiro.com/2011/04/iframe-location-search/</link>
		<comments>http://blog.sakurachiro.com/2011/04/iframe-location-search/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 19:52:42 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[html/css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[とりあえずメモ]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=2442</guid>
		<description><![CDATA[iframeを持つ1つのhtmlを使い回して 中身だけを変更したいんだけど何かいい方法はないかね？と聞かれて iframeの中身をバラバラに作るくらいならiframeやめなよと答えたけど 気になったので少し考えて loc [...]]]></description>
			<content:encoded><![CDATA[<p>iframeを持つ1つのhtmlを使い回して<br />
中身だけを変更したいんだけど何かいい方法はないかね？と聞かれて<br />
iframeの中身をバラバラに作るくらいならiframeやめなよと答えたけど<br />
気になったので少し考えて<br />
location.～が使えそうじゃない？と以下のソースを書いた</p>
<p>親(index.html</p>
<pre class="brush: xml; title: ; notranslate">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;ja&quot; lang=&quot;ja&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;乱雑モックアップ｜親ページ&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Script-Type&quot; content=&quot;text/javascript&quot; /&gt;

&lt;/head&gt;
&lt;body&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;a href=&quot;after.html?http://www.google.com&quot;&gt;googleを開く&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href=&quot;after.html?http://www.yahoo.com&quot;&gt;yahooを開く&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>子iframeがあるhtml(after.html</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;ja&quot; lang=&quot;ja&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;乱雑モックアップ｜子ページ&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Script-Type&quot; content=&quot;text/javascript&quot; /&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
window.onload=function(){
var innerUrl=location.search.substring(1);
document.getElementById(&quot;innerFrame&quot;).src=innerUrl;
}

&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;iframe id=&quot;innerFrame&quot; src=&quot;&quot; frameborder=&quot;0&quot; width=&quot;640&quot; height=&quot;480&quot;&gt;&lt;/iframe&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>これで、親ページのリンクの?以下の名前<br />
(after.html?http://yahoo.co.jpならhttp://yahoo.co.jp)のファイルを<br />
子のiframeで開けるのだが<br />
これ、大丈夫なんでしょうか？</p>
<pre><code>?javascript:alert('alert');</code></pre>
<p>でalertがでるけど、alertを任意に使えるって事は何か別の事がされるんだろうか？<br />
パスワードなんかを扱わないページは気にしなくていいのだろうか。<br />
という感じで使えるものかわからんので教えてない。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2011/04/iframe-location-search/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2011/04/iframe-location-search/" />
	</item>
		<item>
		<title>rollover2.jsとoperaと色々復習</title>
		<link>http://blog.sakurachiro.com/2011/03/rollover2js-vertical-align-opera/</link>
		<comments>http://blog.sakurachiro.com/2011/03/rollover2js-vertical-align-opera/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 21:04:05 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[html/css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[とりあえずメモ]]></category>
		<category><![CDATA[cssua.js]]></category>
		<category><![CDATA[rollover2.js]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=2337</guid>
		<description><![CDATA[凄く滑らかなロールオーバーを超お手軽に実装できるrollover2.jsというものがあるんですが クロスフェードするロールオーバー処理をお手軽に実装するJavaScript &#8211; KAZUMiX memo クロ [...]]]></description>
			<content:encoded><![CDATA[<p>凄く滑らかなロールオーバーを超お手軽に実装できるrollover2.jsというものがあるんですが<br />
<a href="http://d.hatena.ne.jp/KAZUMiX/20071017/rollover2">クロスフェードするロールオーバー処理をお手軽に実装するJavaScript &#8211; KAZUMiX memo</a><br />
<a href="http://www.rr.iij4u.or.jp/~kazumix/d/javascript/rollover2007XF/xhtml.html">クロスフェードするロールオーバー処理 動作サンプル &#8211; XHTML サンプル | KAZUMiX memo</a></p>
<p>これ、imgにvertical-align:bottom;や<br />
vertical-align:top;を指定してある場合、<br />
operaでpositionの基準点がうまくいってないような感じの<br />
とんでもない表示になってて(v10.50以前は確認してないけど)</p>
<p>例 / positionの基準点がうまくいってない感じの表示<br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2011/03/20110301_1.png" rel="shadowbox[sbpost-2337];player=img;" title="左がfirefox、右がopera"><img src="http://blog.sakurachiro.com/wp-content/uploads/2011/03/20110301_1-480x79.png" alt="[image]左がfirefox、右がopera" title="左がfirefox、右がopera" width="480" height="79" class="alignnone size-large wp-image-2338" /></a></p>
<p>今気づいたけど<br />
aタグの中にrollover2.jsのロールオーバー対象になるimgだけが入っていると<br />
おかしくなる。</p>
<p>aタグの中にimgの他に、テキストが入っているとおかしくならない。</p>
<h3>蛇足 / imgにvertical-align:bottomしたい(してる)理由</h3>
<p>ご存知vertical-alignの初期値はbaselineなので<br />
アルファベットのg,j,p,q,yの下に飛び出る部分(ディセンダって名称らしい<a href="#anchor1"><sub>*1</sub></a>)の余白が確保され、テキストと並べた時にimgの下に隙間ができちゃう</p>
<p>この隙間を埋めるには、vertical-align:text-bottomを指定するのが定石みたいなんだけど<br />
operaだとテキストの位置がズレてたので(10.50以降？)、<br />
いつしかbottomで指定するようになって<br />
しばらくしてbottomを指定するようになった理由を失念してました。</p>
<p><a href="http://blog.sakurachiro.com/wp-content/uploads/2011/03/20110301_2.png" rel="shadowbox[sbpost-2337];player=img;" title="safariとoperaを比較 / text-bottomとbottom"><img src="http://blog.sakurachiro.com/wp-content/uploads/2011/03/20110301_2-480x265.png" alt="[image]text-bottomとbottom" title="safariとoperaを比較 / text-bottomとbottom" width="480" height="265" class="alignnone size-large wp-image-2339" /></a><br />
今確認してみたらbottomも表示が変だった＞＜；；；なんだこれ。</p>
<p>とりあえず<br />
vertical-align:text-bottomを指定しとけば<br />
operaでクリック出来なくなるくらい表示が崩れる事はないのかな？</p>
<p>ここから先は失敗を含む試行錯誤メモ</p>
<p><span id="more-2337"></span></p>
<h3>operaだけvertical-align:bottomやtopをそれ以外の値で上書きできないか？</h3>
<p>vertical-align:bottomが基本だと疑ってなかったので<br />
問題のあるoperaだけディセンダが消える別の指定にすればいいかな？と思った</p>
<p>しかしoperaだけにcssを適用出来るハックってのが無いんですよね<br />
(検索して出てくるのはopera11では対策されているのか、効き目がなかった)</p>
<p>で逆に考えて<br />
「opera以外にハックで指定して、通常の指定がoperaだけに適用される」ようにすれば<br />
operaだけvertical-align:text-bottomなんかを指定できるんじゃないか？と思ったけど<br />
面倒なので却下。</p>
<h3>cssua.js / <a href="http://cssuseragent.org/">CssUserAgent (cssua.js)</a>で分岐させる</h3>
<p>最近はてなで見かけたブラウザを判別してhtmlタグにclassを付けてくれるjs<br />
これを使えば簡単にoperaだけにcssを指定できた。</p>
<pre class="brush: css; title: ; notranslate">.ua-opera img{
 vertical-align:text-bottom;
}
img{
 vertical-align:top;
}</pre>
<p>参考 / <a href="http://blog.verygoodtown.com/2011/01/user-agent-specific-css-classes-with-cssuseragent/">もうCSSハックは必要なし!? ブラウザ毎にCSSを切り替える「cssuseragent」 | Web活メモ帳</a></p>
<p>cssua.jsの使い方はcssua.jsを読み込むだけ<br />
cssua.jsを読み込んだページを<br />
operaの&#8221;要素を調べる&#8221;やfirebugでソースをみると<br />
htmlタグにclassがたくさんついてるのが確認できる。</p>
<h3>いやでもjs使わないでどうにかならないかな？</h3>
<p>この時点でまだopera以外もtext-bottomでいいのでは？と想像も出来てない。</p>
<p>aにdisplay:blockしたらvertical-align:bottom;でも問題なく表示できた。<br />
でも全部のaにそんな指定したら困っちゃうし<br />
rollover2.jsの範囲のaだけdisplay:blockするってのは<br />
画像の名前だけで勝手にrolloverを指定出来るせっかくの超便利機能を制限することになるので避けたい。</p>
<h3>display:inline-block;ならどうだろう？</h3>
<p>block要素になればいいみたいだから指定してみたらいい感じだった。<br />
が、いままで問題なかったsafariで<br />
aタグテキストの上部に隙間ができてしまった。</p>
<p>むむむ。</p>
<p>そんで、じゃあそもそもvertical-alignをtext-bottomやtopにすると<br />
どんな問題が発生するんだろう？と<br />
検証してみてら色々こんがらがってきて<br />
結局text-bottomで特に問題なさそうという最初に書いた結論に落ち着きそうな感じ。</p>
<p><span class="note3" id="anchor1">*1</span> 逆にb,d,f,h,k,lなどエックスハイト(小文字のxなどの高さ)の上ミーンライン？より飛び出した分はアセンダって名称らしい。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2011/03/rollover2js-vertical-align-opera/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2011/03/rollover2js-vertical-align-opera/" />
	</item>
		<item>
		<title>ブラウザの表示倍率を無理やり100%に見せる（ただしIE限定、動作確認は8のみ）</title>
		<link>http://blog.sakurachiro.com/2010/12/screen-devicexdpi/</link>
		<comments>http://blog.sakurachiro.com/2010/12/screen-devicexdpi/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 14:57:36 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[ie]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[とりあえずメモ]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=2302</guid>
		<description><![CDATA[サンプル / http://sakurachiro.com/_exercise/html_css/zoom1/index.html （IEで表示倍率を変更すると確認出来ます） ブラウザの表示倍率をリセットする方法は無いか [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sakurachiro.com/_exercise/html_css/zoom1/index.html" target="_blank">サンプル / http://sakurachiro.com/_exercise/html_css/zoom1/index.html</a><br />
（IEで表示倍率を変更すると確認出来ます）</p>
<p>ブラウザの表示倍率をリセットする方法は無いかな？と試行錯誤してみました。</p>
<p>ちょっと調べてみるとscreen.devicexdpiってのを使うと画面のdpiがわかるみたい</p>
<p>参考にさせてもらったページ<br />
<a href="http://javascript.gakaa.com/screen-devicexdpi-2-0-deviceydpi-2-0-logicalxdpi-2-0-logicalydpi.aspx">javascript screen deviceXDPI, deviceYDPI, logicalXDPI, logicalYDPI</a><br />
<a href="http://msdn.microsoft.com/en-us/library/ms533721(VS.85).aspx">deviceXDPI Property (screen, Screen Constructor)</a><br />
<a href="http://gihyo.jp/dev/serial/01/crossbrowser-javascript/0019">これでできる！ クロスブラウザJavaScript入門：第19回　CSSOM View Module解説</a></p>
<p>windowsは96でIEの表示を400%にしてる時は384。</p>
<p>そこに直接数字を入れたらコントロールできるかのか？と<br />
<em>screen.devicexdpi=96;</em>みたいにしても反応なし。<br />
読み取るだけなのか、使い方を間違ってるのかとにかくこの方法じゃ出来なかった。</p>
<p>なのでzoomプロパティを使って拡大してる分を縮小させてみる事に。<br />
こんな感じ</p>
<pre class="brush: jscript; title: ; notranslate">function cz(){
      if (screen.deviceXDPI !=96) {
      var dxd=screen.deviceXDPI;
      var nowMagniFication=dxd/96;
      var chgZoom=1/nowMagniFication;

      document.body.style.zoom=chgZoom;
      document.body.style.width=document.body.clientWidth*nowMagniFication+&quot;px&quot;;
   }
}
window.onload=cz;</pre>
<p>zoomを1になるようにしても<br />
横幅が拡大した時のサイズにあわせて変更されちゃうので<br />
document.body.clientWidthを倍率に合わせて拡張</p>
<p>スクロールバーが表示されるのでbodyにoverflow-x:hidden;を指定して切捨て。<br />
window.onloadとwindow.onresizeで呼び出してみたけど<br />
書き方が悪いのかwindow.onresizeがあると横幅が異常に広がってしまうので削除した。</p>
<p>なんとなくokぽい感じがしないでもないけど<br />
上下marginがあると拡大したままになってしまうのよね、これ。</p>
<p>縦のスクロールも伸びっぱなしでした。<br />
ん～もうちょっと頑張らないと使い物にならないかなぁ。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/12/screen-devicexdpi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/12/screen-devicexdpi/" />
	</item>
		<item>
		<title>まとめてリンケージとリンケージ解除</title>
		<link>http://blog.sakurachiro.com/2010/11/linkage/</link>
		<comments>http://blog.sakurachiro.com/2010/11/linkage/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 20:26:37 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[とりあえずメモ]]></category>
		<category><![CDATA[jsfl]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=2287</guid>
		<description><![CDATA[たくさんリンケージする時、手動だと面倒なのでjsflでパパパッと済ませてしまおうというメモ。 参考1:リンケージの設定を自動化する &#124; tanablog 上記のソースだとHOGE+連番なので 任意の接頭語+連番になるよう [...]]]></description>
			<content:encoded><![CDATA[<p>たくさんリンケージする時、手動だと面倒なのでjsflでパパパッと済ませてしまおうというメモ。</p>
<p>参考1:<a href="http://blog.kaihatsubu.com/archives/001175.html">リンケージの設定を自動化する | tanablog</a><br />
上記のソースだと<em>HOGE+連番</em>なので<br />
<em>任意の接頭語+連番</em>になるように少し書き換えて.jsflとして保存</p>
<p>こんな感じ。</p>
<pre class="brush: jscript; title: ; notranslate">var library = fl.getDocumentDOM().library;
var items = library.getSelectedItems();

//prompt(&quot;表示されるメッセージ&quot;, &quot;入力されてる文字&quot;)
var myprefix=prompt(&quot;prefix&quot;, &quot;test&quot;)

for (var i = 0; i &lt; items.length; i++) {
//actionscriptに書き出し
  items[i].linkageExportForAS = true;
//最初のフレームに書き出し
  items[i].linkageExportInFirstFrame = true;
  items[i].linkageIdentifier = myprefix + i;
}</pre>
<p>ライブラリの名前を活かしてリンケージさせるならこんな感じ？</p>
<pre class="brush: jscript; title: ; notranslate">var library = fl.getDocumentDOM().library;
var items = library.getSelectedItems();
var myprefix=prompt(&quot;prefixを付けるなら入力&quot;, &quot;test&quot;)

for (var i = 0; i &lt; items.length; i++) {
  items[i].linkageExportForAS = true;
  items[i].linkageExportInFirstFrame = true;
  items[i].linkageIdentifier = myprefix + items[i].name;//ここを変更
}</pre>
<p><em>リンケージを解除するjsfl</em>[引用]</p>
<blockquote cite="http://blog.kaihatsubu.com/archives/001175.html" title="リンケージの設定を自動化する"><pre class="brush: jscript; title: ; notranslate">var library = fl.getDocumentDOM().library;

library.selectAll();
library.setItemProperty(&quot;linkageExportForAS&quot;, false);
</pre>
</blockquote>
<p>プロンプトでラジオボタンみたいなのを表示させて処理を分岐させるにはどうしたらいいんだろう。</p>
<p>参考2:<a href="http://livedocs.adobe.com/flash/9.0_jp/main/flash_cs3_extending.pdf" target="_blank">Flashの拡張機能(pdf)</a></p>
<h3>使い方メモ</h3>
<p>[コマンド] &#8211; [コマンドの実行]からか<br />
作成した.jsflを以下に保存するとツールバーのコマンド内に出現する</p>
<p>xpの場所</p>
<pre class="brush: plain; title: ; notranslate">
C:\Documents and Settings\[ユーザ名]\Local Settings\Application Data\Adobe\Flash CS3\ja\Configuration\Commands
</pre>
<p>参考3:<a href="http://www.yama-ko.net/blog/?p=31" target="_blank">jsflのすすめ &#8211; yama-ko.net blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/11/linkage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/11/linkage/" />
	</item>
		<item>
		<title>メモ / iframe 高さ取得変更 クロスドメイン</title>
		<link>http://blog.sakurachiro.com/2010/11/iframe-resize/</link>
		<comments>http://blog.sakurachiro.com/2010/11/iframe-resize/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 19:34:43 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[html/css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[とりあえずメモ]]></category>
		<category><![CDATA[iframeのサイズを変更]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=2248</guid>
		<description><![CDATA[こちらのページをそのまま参考にしてhttp://ja.w3support.net/index.php?db=so&#038;id=153152 iframeで別ドメインにあるページを開いた時に、自動的にheightを調整 [...]]]></description>
			<content:encoded><![CDATA[<p>こちらのページをそのまま参考にして<a href="http://ja.w3support.net/index.php?db=so&amp;id=153152" class="broken_link">http://ja.w3support.net/index.php?db=so&#038;id=153152</a><br />
iframeで別ドメインにあるページを開いた時に、自動的にheightを調整する方法を試してみた。<br />
(※ 別ドメインにあるファイルにjsを追加する必要あり)</p>
<p>別ドメインのhtmlに手を加えずに出来たら、確実に嬉ションしちゃうけど難しいみたいすなぁ。</p>
<p><span id="more-2248"></span></p>
<h3>構成</h3>
<p> www.foo.com/home.html, which iframes<br />
&nbsp;└＞ www.bar.net/framed.html, which iframes<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└＞ www.foo.com/helper.html </p>
<h4>記述例</h4>
<p><em>www.foo.com/home.html</em></p>
<pre class="brush: xml; title: ; notranslate">&lt;script&gt;
  // Resize iframe to full height
  function resizeIframe(height)
  {
    // &quot;+60&quot; is a general rule of thumb to allow for differences in
    // IE &amp; and FF height reporting, can be adjusted as required..
    document.getElementById('frame_name_here').height = parseInt(height)+60;
  }
&lt;/script&gt;
&lt;iframe id='frame_name_here' src='http://www.bar.net/framed.html'&gt;&lt;/iframe&gt; </pre>
<p><em>www.bar.net/framed.html</em></p>
<pre class="brush: xml; title: ; notranslate">&lt;body onload=&quot;iframeResizePipe()&quot;&gt;
&lt;iframe id=&quot;helpframe&quot; src='' height='0' width='0' frameborder='0'&gt;&lt;/iframe&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
  function iframeResizePipe()
  {
     // What's the page height?
     var height = document.body.scrollHeight;
     // Going to 'pipe' the data to the parent through the helpframe..
     var pipe = document.getElementById('helpframe');
     // Cachebuster a precaution here to stop browser caching interfering
     pipe.src = 'http://www.foo.com/helper.html?height='+height+'&amp;cacheb='+Math.random();
  }
&lt;/script&gt; </pre>
<p><em>www.foo.com/helper.html</em></p>
<pre class="brush: xml; title: ; notranslate">&lt;html&gt;
&lt;!--
This page is on the same domain as the parent, so can
communicate with it to order the iframe window resizing
to fit the content
--&gt;
  &lt;body onload=&quot;parentIframeResize()&quot;&gt;
    &lt;script&gt;
      // Tell the parent iframe what height the iframe needs to be
      function parentIframeResize()
      {
         var height = getParam('height');
         // This works as our parent's parent is on our domain..
         parent.parent.resizeIframe(height);
      }
      // Helper function, parse param from request string
      function getParam( name )
      {
        name = name.replace(/[\[]/,&quot;\\\[&quot;).replace(/[\]]/,&quot;\\\]&quot;);
        var regexS = &quot;[\\?&amp;]&quot;+name+&quot;=([^&amp;#]*)&quot;;
        var regex = new RegExp( regexS );
        var results = regex.exec( window.location.href );
        if( results == null )
          return &quot;&quot;;
        else
          return results[1];
      }
    &lt;/script&gt;
  &lt;/body&gt;
&lt;/html&gt; </pre>
<h3>追記</h3>
<p>結局iframe先のページに書き込むの事に代わりがないのなら<br />
<a href="http://d.hatena.ne.jp/bannyan/20090820/1250789189">window.postMessage() を使って、クロスドメインの iframe の高さを設定する検証 &#8211; 写経日記</a>の方がシンプルで素敵だ。</p>
<p>でもwindow.postMessage()というのを使っているので<br />
以下のように(見よう見まねで)window.attachEventを追加してもIE7以下は広がらなかったです。</p>
<h4>構成</h4>
<p> www.foo.com/parent.html<br />
&nbsp;└＞ www.bar.net/iframe.html</p>
<p><em>parent.html</em></p>
<pre class="brush: xml; title: ; notranslate">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
if (window.addEventListener) { //for W3C DOM
    window.addEventListener(&quot;message&quot;, receiveSize, false);
} else if (window.attachEvent) { //for IE
window.attachEvent(&quot;onmessage&quot;,receiveSize);
}
    function receiveSize(e) {
        if (e.origin === &quot;http://www.bar.net/&quot;) // for security: set this to the domain of the iframe - use e.uri if you need more specificity
            document.getElementById(&quot;bar&quot;).style.height = e.data + &quot;px&quot;;
    }
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;iframe id=&quot;bar&quot; src=&quot;http://www.bar.net/iframe.html&quot; scrolling=&quot;no&quot; &gt; &lt;/iframe&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p><em>www.bar.net/iframe.html</em></p>
<pre class="brush: xml; title: ; notranslate">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.1//EN&quot; &quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
if (window.addEventListener) { //for W3C DOM
    window.addEventListener(&quot;load&quot;, postSize, false);
}else if (window.attachEvent) { //for IE
window.attachEvent(&quot;onload&quot;,postSize);
}
    function postSize(e){
        var target = parent.postMessage ? parent : (parent.document.postMessage ? parent.document : undefined);
        if (typeof target != &quot;undefined&quot; &amp;&amp; document.body.scrollHeight)
            target.postMessage(document.getElementById(&quot;foo&quot;).scrollHeight, &quot;*&quot;);
    }

&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id=&quot;foo&quot; style=&quot;height: 1500px; background:red;&quot;&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/11/iframe-resize/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/11/iframe-resize/" />
	</item>
		<item>
		<title>jQueryアコーディオンメニューddaccordion.js (Accordion Content script)の設置メモ</title>
		<link>http://blog.sakurachiro.com/2010/11/accordion-content-script/</link>
		<comments>http://blog.sakurachiro.com/2010/11/accordion-content-script/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 10:35:34 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[とりあえずメモ]]></category>
		<category><![CDATA[アコーディオン]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=2241</guid>
		<description><![CDATA[ddaccordion.js v1.9現在のお話 Dynamic Drive DHTML Scripts- Accordion Content script (v1.9) このjs最後にクリックした要素をcookieに保 [...]]]></description>
			<content:encoded><![CDATA[<p>ddaccordion.js v1.9現在のお話<br />
<a href="http://www.dynamicdrive.com/dynamicindex17/ddaccordion.htm">Dynamic Drive DHTML Scripts- Accordion Content script (v1.9)</a></p>
<p>このjs最後にクリックした要素をcookieに保存して<br />
ページ変移後に最後にクリックした要素を開いた状態で移動出来るという便利なオプションがあるんだけど<br />
子を持たない親だけのメニューが混ざっていると、<br />
最後に子メニューを持った親をクリックした場所を記憶してしまい<br />
ページ変移後に変なところが開いてしまう(分かりづらいと思うけど)<br />
みたいな面倒な感じだったので途中経過をメモ。</p>
<p>多分すべての要素が子階層を持っているなら問題は無いのだけれども。</p>
<p><span id="more-2241"></span></p>
<h3>ddaccordion.jsを適用したメニュー</h3>
<div id="dd_box">
<ul id="dd_nav">
<li><a href="#" class="dd_navheader">親メニュー1</a>
<ul class="dd_child">
<li><a href="#">子メニュー</a></li>
<li><a href="#">子メニュー</a></li>
<li><a href="#">子メニュー</a></li>
</ul>
</li>
<li><a href="#" class="dd_navheader">親メニュー2</a>
<ul class="dd_child">
<li><a href="#">子メニュー</a></li>
<li><a href="#">子メニュー</a></li>
<li><a href="#">子メニュー</a></li>
<li><a href="#">子メニュー</a></li>
<li><a href="#">子メニュー</a></li>
<li><a href="#">子メニュー</a></li>
</ul>
</li>
<li><a href="#">子なしメニュー1</a></li>
<li><a href="#" class="dd_navheader">親メニュー3</a>
<ul class="dd_child">
<li><a href="#">子メニュー</a></li>
<li><a href="#">子メニュー</a></li>
<li><a href="#">子メニュー</a></li>
<li><a href="#">子メニュー</a></li>
<li><a href="#">子メニュー</a></li>
</ul>
</li>
<li><a href="#">子なしメニュー2</a></li>
</ul>
</div>
<p><!--</p>
<pre class="brush: jscript; class-name: js-sh; title: ; notranslate">ddaccordion.init({
	headerclass: &quot;dd_navheader&quot;, //親のクラス名Shared CSS class name of headers group
	contentclass: &quot;dd_child&quot;, //子グループのクラス名Shared CSS class name of contents group
	revealtype: &quot;mouseover&quot;, //イベントの種類をclick、clickgo、mouseoverから選べる。Reveal content when user clicks or onmouseover the header? Valid value: &quot;click&quot;, &quot;clickgo&quot;, or &quot;mouseover&quot;
	mouseoverdelay: 0, //反応する時間ミリ秒 if revealtype=&quot;mouseover&quot;, set delay in milliseconds before header expands onMouseover
	collapseprev: true, //崩壊以前の内容（いつでも、これだけ開いている）？ true / falseのCollapse previous content (so only one open at any time)? true/false
	defaultexpanded: [0], //コンテンツのインデックス（s）がデフォルトの[index1の、index2等]で開きます。 []は、コンテンツを示しています。index of content(s) open by default [index1, index2, etc]. [] denotes no content.
	onemustopen: true, //少なくとも一つのヘッダは、（これは決してすべてのヘッダーが閉じて）は常に開いているかどうかを指定しますSpecify whether at least one header should be open always (so never all headers closed)
	animatedefault: false, //内容は、デフォルトではオープンはすべきビューにアニメーションできますか？Should contents open by default be animated into view?
	persiststate: true, //ブラウザセッション内で開かれた内容の状態を保持？persist state of opened contents within browser session?
	toggleclass: [&quot;&quot;, &quot;chked&quot;], //それが崩壊だ展開時には、それぞれ[&quot;Class1&quot;を、&quot;class2の&quot;]を二つのCSSクラスは、ヘッダーに適用されるTwo CSS classes to be applied to the header when it&#8217;s collapsed and expanded, respectively [&quot;class1&quot;, &quot;class2&quot;]
	togglehtml: [&quot;none&quot;, &quot;&quot;, &quot;&quot;], //それが崩壊だが、それぞれ拡大[&quot;位置&quot;、&quot;html1&quot;、&quot;html2&quot;]を（ドキュメントを参照してください）追加のHTMLヘッダに追加Additional HTML added to the header when it&#8217;s collapsed and expanded, respectively  [&quot;position&quot;, &quot;html1&quot;, &quot;html2&quot;] (see docs)
	animatespeed: &quot;fast&quot;, //アニメーションの速度：整数をミリ秒単位で（例：200）、またはキーワード、&quot;ふつう&quot;、&quot;速い&quot;や&quot;遅い&quot;
OnInitメソッド：{/ /カスタムコード関数（expandedindices）はヘッダーがinitalizedているときに実行するspeed of animation: integer in milliseconds (ie: 200), or keywords &quot;fast&quot;, &quot;normal&quot;, or &quot;slow&quot;
	oninit:function(expandedindices){ //custom code to run when headers have initalized
		//do nothing
	},
	onopenclose:function(header, index, state, isuseractivated){ //custom code to run whenever a header is opened or closed
		//do nothing
	}
})</pre>
<p>翻訳はgoogleさん。<br />
--></p>
<pre class="brush: xml; class-name: html-sh; title: ; notranslate">&lt;ul id=&quot;dd_nav&quot;&gt;
 &lt;li&gt;&lt;a href=&quot;#&quot; class=&quot;dd_navheader&quot;&gt;親メニュー1&lt;/a&gt;
  &lt;ul class=&quot;dd_child&quot;&gt;
   &lt;li&gt;&lt;a href=&quot;#&quot;&gt;子メニュー&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href=&quot;#&quot;&gt;子メニュー&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href=&quot;#&quot;&gt;子メニュー&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
 &lt;/li&gt;
 &lt;li&gt;&lt;a href=&quot;#&quot; class=&quot;dd_navheader&quot;&gt;親メニュー2&lt;/a&gt;
  &lt;ul class=&quot;dd_child&quot;&gt;
   &lt;li&gt;&lt;a href=&quot;#&quot;&gt;子メニュー&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href=&quot;#&quot;&gt;子メニュー&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href=&quot;#&quot;&gt;子メニュー&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href=&quot;#&quot;&gt;子メニュー&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href=&quot;#&quot;&gt;子メニュー&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href=&quot;#&quot;&gt;子メニュー&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
 &lt;/li&gt;
 &lt;li&gt;&lt;a href=&quot;#&quot;&gt;子なしメニュー1&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href=&quot;#&quot; class=&quot;dd_navheader&quot;&gt;親メニュー3&lt;/a&gt;
  &lt;ul class=&quot;dd_child&quot;&gt;
   &lt;li&gt;&lt;a href=&quot;#&quot;&gt;子メニュー&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href=&quot;#&quot;&gt;子メニュー&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href=&quot;#&quot;&gt;子メニュー&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href=&quot;#&quot;&gt;子メニュー&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href=&quot;#&quot;&gt;子メニュー&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
 &lt;/li&gt;
 &lt;li&gt;&lt;a href=&quot;#&quot;&gt;子なしメニュー2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</pre>
<pre class="brush: css; class-name: css-sh; title: ; notranslate">
/*cssはあまり関係ないけど*/
#dd_box {
 width:438px;
 padding:20px;
 border:1px solid #E9E1CB;
 background:#FCFBF8;
 color:#fff;
 border-radius: 3px;

}

#dd_nav {
 font-size:80%;
 width:190px;
 background:#000;
 padding:7px 0;
 margin:0 auto;
border-radius : 4px;
 -moz-border-radius:3px;
}
#dd_box a {
 color:#fff;
 text-decoration:none;
 display:block;
 padding:0 10px;
 background:none;
 border:none;
}
/* 親 */
#dd_box li a {
 height:30px;
 line-height:30px;
 background:#000;
}
#dd_box li a:hover, #dd_box .chked { background:#1A4395; }
/* 子 */
#dd_box li li a {
 height:20px;
 line-height:20px;
 padding-left:2em;
 background:#252525;
}
#dd_box li li a:hover { background:#173267; }
#dd_box li { border-top:1px solid #555; }
#dd_box li,#dd_box li li,
#dd_box ul ul{
 list-style:none;
 padding:0;
 margin:0;
}</pre>
<h3>子メニュー無しのページにはclassかidを付けて、それが無ければすべてを閉じるようにした</h3>
<p>例えば子メニューが無いページに.dd_childを付けておく<br />
onloadで.dd_childががあるか無いか調べて、みつかったらアコーディオンを閉じる</p>
<pre class="brush: jscript; class-name: js-sh; title: ; notranslate">window.onload=function(){
  var keywords=&quot;dd_child&quot;;
  var elems = document.getElementsByTagName(&quot;*&quot;);

  for(var i=0;i&lt;elems.length;i++){
  //	alert(elems[i].className);
    if(elems[i].className==keywords){
      ddaccordion.collapseall('dd_navheader');
    }
  }
}</pre>
<p>とりあえずポスト</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/11/accordion-content-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/11/accordion-content-script/" />
	</item>
		<item>
		<title>Firefoxでwindow.innerWidthとdocument.body.clientWidthの値がおかしい</title>
		<link>http://blog.sakurachiro.com/2010/10/firefox-window-innerwidth-document-body-clientwidth-value-is-strange/</link>
		<comments>http://blog.sakurachiro.com/2010/10/firefox-window-innerwidth-document-body-clientwidth-value-is-strange/#comments</comments>
		<pubDate>Thu, 28 Oct 2010 12:04:13 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=2234</guid>
		<description><![CDATA[(1マス=100px) ブラウザのbody部分のサイズを取得したくて とやってみたらFirefoxが吐き出す値が大きすぎるうえに あるサイズ以下になると一定の値しか返さなくなる。 アドオンがいけないのかな？とか色々消して [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/10/20101027-3.png" alt="[image]取得する値が合わない" title="取得する値が合わない" width="480" height="339" class="alignnone size-full wp-image-2237" /><br />
(1マス=100px)</p>
<p>ブラウザのbody部分のサイズを取得したくて</p>
<pre class="brush: jscript; class-name: js-sh; title: ; notranslate">window.onresize=function(){
w = document.body.clientWidth;
alert(w);
}</pre>
<p>とやってみたらFirefoxが吐き出す値が大きすぎるうえに<br />
あるサイズ以下になると一定の値しか返さなくなる。</p>
<p>アドオンがいけないのかな？とか色々消していったら<br />
ナビゲーションツールバーを非表示にした時に期待した値を取れるようになりました。</p>
<p><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/10/20101027-41.png" alt="[image]ナビゲーションツールバーを非表示" title="ナビゲーションツールバーを非表示" width="480" height="339" class="alignnone size-full wp-image-2238" /></p>
<p>ナビゲーションツールバーを無視してサイズを取得するにはどうしたらいいんだろう…</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/10/firefox-window-innerwidth-document-body-clientwidth-value-is-strange/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/10/firefox-window-innerwidth-document-body-clientwidth-value-is-strange/" />
	</item>
		<item>
		<title>PhotoshopCS2以降でオブジェクトを等間隔に分布させる.jsxがあったよ。</title>
		<link>http://blog.sakurachiro.com/2010/10/photoshopcs2-distribute-layers-horizontally/</link>
		<comments>http://blog.sakurachiro.com/2010/10/photoshopcs2-distribute-layers-horizontally/#comments</comments>
		<pubDate>Mon, 18 Oct 2010 14:07:23 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[jsx]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=2177</guid>
		<description><![CDATA[illustratorやFireworksにある等間隔に分布ってものそい便利じゃないですか。 でも残念な事にphotoshopは出来ないんですよね、残念な事に。 そこでjsxで出来ないかな？と調べて書いてみようと頑張った [...]]]></description>
			<content:encoded><![CDATA[<p>illustratorやFireworksにある<span class="note3">等間隔に分布</span>ってものそい便利じゃないですか。<br />
でも残念な事にphotoshopは出来ないんですよね、残念な事に。</p>
<p>そこでjsxで出来ないかな？と調べて書いてみようと頑張ったんですけど、<br />
複数選択したレイヤーの情報を取得する事すら出来ずに挫折しました(割と手前の壁)。</p>
<p>しかし、海の向こうではすでに等間隔に分布させるjsxを作って配布されてる方がいらっしゃいました、すごいなー。</p>
<p>ダウンロード:<a href="http://morris-photographics.com/photoshop/scripts/index.html">Adobe Photoshop Scripts | Trevor Morris Photographics</a><br />
垂直方向用のjsxしか試してないけど、水平方向用や他にも沢山jsxがありまんた。</p>
<h3>分布結果の違いを比べてみた画像</h3>
<p>整列前の適当な配置、青い背景はサイズが分かりやすいようにとつけちゃった。<br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2010/10/20101018-0.png" rel="shadowbox[sbpost-2177];player=img;" title="元の配置"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/10/20101018-0.png" alt="[image]元の配置" title="元の配置" width="480" height="140" class="alignnone size-full wp-image-2185" /></a></p>
<p>photoshopの<em>左端を分布</em> / 重なるよねぇ<br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2010/10/20101018-1.png" rel="shadowbox[sbpost-2177];player=img;" title="左端を分布"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/10/20101018-1.png" alt="[image]左端を分布で整列させた結果" title="左端を分布" width="480" height="140" class="alignnone size-full wp-image-2181" /></a></p>
<p>photoshopの<em>水平方向中央を分布</em> / 最初何が起きたのか理解できなかった。<br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2010/10/20101018-21.png" rel="shadowbox[sbpost-2177];player=img;" title="水平方向中央を分布"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/10/20101018-21.png" alt="[image]水平方向中央を分布で整列させた結果" title="水平方向中央を分布" width="480" height="140" class="alignnone size-full wp-image-2182" /></a></p>
<p>photoshopの<em>右端を分布</em> / 重なるよねぇ<br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2010/10/20101018-31.png" rel="shadowbox[sbpost-2177];player=img;" title="右端を分布"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/10/20101018-31.png" alt="[image]右端を分布で整列させた結果" title="右端を分布" width="480" height="140" class="alignnone size-full wp-image-2183" /></a></p>
<p><a href="http://morris-photographics.com/photoshop/scripts/index.html">Adobe Photoshop Scripts | Trevor Morris Photographics</a>の<br />
<a href="http://morris-photographics.com/photoshop/scripts/distribute-horizontally.html">Photoshop &gt; Scripts &gt; Distribute Layers Horizontally</a>を使用<br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2010/10/20101018-4.png" rel="shadowbox[sbpost-2177];player=img;" title="Distribute Layers Horizontally 0-1-4.jsxを使用"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/10/20101018-4.png" alt="[image]Distribute Layers Horizontally 0-1-4.jsxを使った結果" title="Distribute Layers Horizontally 0-1-4.jsxを使用" width="480" height="140" class="alignnone size-full wp-image-2180" /></a><br />
SUGEEEEEEEEEEEE！！！！！1<br />
愛してる！！！！！！！！！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/10/photoshopcs2-distribute-layers-horizontally/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/10/photoshopcs2-distribute-layers-horizontally/" />
	</item>
		<item>
		<title>ie-css3.jsのベータが取れて名前がSelectivizr(:select[ivizr]？)に変わってた</title>
		<link>http://blog.sakurachiro.com/2010/09/selectivizr/</link>
		<comments>http://blog.sakurachiro.com/2010/09/selectivizr/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 09:25:42 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[CSS3]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=2127</guid>
		<description><![CDATA[IE8以下にcss3の擬似クラスを対応させるjsのバージョンが1.0になって名前と配布サイトが変わってた。 Selectivizr &#8211; CSS3 pseudo-class and attribute sele [...]]]></description>
			<content:encoded><![CDATA[<p>IE8以下にcss3の擬似クラスを対応させるjsのバージョンが1.0になって名前と配布サイトが変わってた。<br />
<a href="http://selectivizr.com/">Selectivizr &#8211; CSS3 pseudo-class and attribute selectors for IE 6-8</a></p>
<p><a href="http://blog.sakurachiro.com/wp-content/uploads/2010/09/20100923-1.png" rel="shadowbox[sbpost-2127];player=img;" title="Selectivizr - CSS3 pseudo-class and attribute selectors for IE 6-8"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/09/20100923-1-480x312.png" alt="Selectivizrのwebサイト" title="Selectivizr - CSS3 pseudo-class and attribute selectors for IE 6-8" width="480" height="312" class="alignnone size-large wp-image-2128" /></a></p>
<p>いつのまにか擬似否定クラス E:not(s) にも対応してた(0.9.7bから？)</p>
<p><span id="more-2127"></span></p>
<h3>使い方メモ</h3>
<p>ie-css3.jsと変わらない(おそらく)</p>
<p>上記サイトからelectivizr.jsとお好きなjsライブラリをダウンロードしてくる<br />
<a href="http://javascript.nwbox.com/NWMatcher/">NWMatcher &#8211; CSS3 Selector and Matcher</a>にあるNWMatcher 1.2.2.jsを使うと全開でいけるみたい。</p>
<p><span class="note2">ヘッダ部分の例</span></p>
<pre class="brush: xml; class-name: html-sh; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot; src=&quot;js/nwmatcher.js&quot;&gt;&lt;/script&gt;
&lt;!--[if lte IE 8]&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;js/selectivizr.js&quot;&gt;&lt;/script&gt;
&lt;![endif]--&gt; </pre>
<p><span class="note2">気をつける事</span><br />
やっぱり、ローカルじゃ機能しない。<br />
head無いに書いたcssやインラインのcssの指定は効かない。</p>
<p>そこらへんは前回試した0.9.5bと同じですた。<br />
<a href="http://blog.sakurachiro.com/2010/04/ie-css3-js/">ie-css3.js ( :nth-childなどのCSS3擬似クラスをIEでも使えるようにするjs ) で失敗した事。 | 乱雑モックアップ</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/09/selectivizr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/09/selectivizr/" />
	</item>
		<item>
		<title>.psd内のテキストレイヤーからテキストを抽出して.txtファイルに書き出してくれる.jsx</title>
		<link>http://blog.sakurachiro.com/2010/09/psd2txt/</link>
		<comments>http://blog.sakurachiro.com/2010/09/psd2txt/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 16:46:02 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[jsx]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=2080</guid>
		<description><![CDATA[Bram.us » PS_BRAMUS.TextExport 1.3 – Automatically export all Text layers from Photoshop PSD to a Text file (P [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bram.us/2008/03/16/ps_bramustextexport-13-automatically-export-all-text-layers-from-photoshop-psd-to-a-text-file/" title="Bram.us"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/09/20100831-2.png" alt="Bram.us(ファイルのあるサイト)" title="Bram.us" width="480" height="297" class="alignnone size-full wp-image-2081" /></a></p>
<p><a href="http://www.bram.us/2008/03/16/ps_bramustextexport-13-automatically-export-all-text-layers-from-photoshop-psd-to-a-text-file/">Bram.us » PS_BRAMUS.TextExport 1.3 – Automatically export all Text layers from Photoshop PSD to a Text file (PSD2TXT)</a></p>
<p>(レイヤー階層で)下にあるテキストレイヤーから順番にテキストを抽出してテキストファイルに書き出してくれる.jsx</p>
<p>フォルダ階層が深いと処理にものすごく時間がかかって不安になる。<br />
逆にフォルダ階層が浅いとテキストレイヤーの数が多くても結構速く終わる感じがしました<br />
(The quick brown fox jumps over the lazy dog.と書いてあるテキストレイヤーを60程複製したpsdを処理させたらだいたい10～20秒くらいで完了しました)。</p>
<p>複数psdを開いている場合</p>
<blockquote title="photoshop上のメッセージ"><p>TextExport has detected Multiple Files.<br />
Do you wish to run TextExport on all opened files?</p></blockquote>
<p>と聞かれるので、開いているファイル全て処理したいなら「はい」にして<br />
選択してるファイルだけ処理したいなら「いいえ」を選ぶ。</p>
<p>随分昔からあるscriptみたいだけど知らなかったなぁ、あると便利でした。<br />
という事でメモ。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/09/psd2txt/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/09/psd2txt/" />
	</item>
		<item>
		<title>簡単に Another HTML-lint gatewayで html のチェックが出来るブックマークレット。</title>
		<link>http://blog.sakurachiro.com/2010/06/another-html-lint-bookmarklet/</link>
		<comments>http://blog.sakurachiro.com/2010/06/another-html-lint-bookmarklet/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 15:48:44 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[html/css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[ブックマークレット]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=1835</guid>
		<description><![CDATA[[追記]現在は使えなくなっちゃいました＞＜；；； うおおおおおおおおおおおおおおおお 突然ですがこれは『気合いの雄叫び』ですッ！ 昔は Web developer ( Firefoxのアドオン ) から簡単に、現在見てい [...]]]></description>
			<content:encoded><![CDATA[<p><em class="note2">[追記]</em>現在は使えなくなっちゃいました＞＜；；；</p>
<h3>うおおおおおおおおおおおおおおおお 突然ですがこれは『気合いの雄叫び』ですッ！</h3>
<p>昔は <a href="http://lab.tubonotubo.jp/tools/webdeveloper/index.html">Web developer</a> ( Firefoxのアドオン ) から簡単に、現在見ているページを<a href="http://openlab.ring.gr.jp/k16/htmllint/htmllint.html">Another HTML-lint gateway</a>でチェック出来ていたのですが、ある日気がつけば以下の文言が表示されるようになって慌てた人も多いのではないでしょうか？</p>
<p><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100615-1-480x210.png" alt="[image]このメソッドは禁止しています。 フォームページ から利用して下さい。とブラウザに表示されている画面" title="このメソッドは禁止しています。 フォームページ から利用して下さい。" width="480" height="210" class="alignnone size-large wp-image-1836" /></p>
<p>自分がそうだったからって、他の人もそうなんじゃないですかとか決めつけちゃって失礼ですよね、ごめんなさい。<br />
とりあえず、ひとしきり騒いだ後、<span class="note2">&#8220;外部からのGETリクエスト停止&#8221;</span> になった事を知り肩を落としそして少し泣きました。</p>
<p>それ以来 ( 2009年4月30日以降) html の検証をするには、<a href="http://openlab.ring.gr.jp/k16/htmllint/htmllint.html">Another HTML-lint gateway</a>にアクセスして<br />
チェックしたいHTMLのURLを指定するか、HTMLを下のテキスト領域に直接記述して、[チェック] ボタンを押して使う事になりました。</p>
<p>当時はもう文法チェックする頻度も下がってはいたけど、Web developerからチェックする事に慣れきっちゃっていたので<br />
いざ普通に使おうとしたらウオオオオオ ウダラァーーーッとまでは行かないまでも、面倒くさい事面倒くさい事。</p>
<p>あれから一年余、なんと<em>現在も有効なAnother HTML-lintのブックマークレットがありましたッ！</em>。<br />
<a href="http://www.chopstick-brunch.com/2010/05/000025.html">Another HTML-lintのブックマークレット | 沖縄のWebデザイナーChopstickBrunch</a><br />
また、簡単にlintにかけられるなんて日が来るなんて、感無量。</p>
<p><span id="more-1835"></span></p>
<h3>人は慣れる。</h3>
<p>しばらく ChopstickBrunch 様のブックマークレットを使っていましたが、<br />
これだとチェックしたいページ自体が lint の結果に置き換わってしまう為、若干不便に感じるようになってきました ( ゆとり世代じゃないけどゆとってるなぁ… )。</p>
<p>でもって検証結果を別のタブで開けるようにならないかな？と、勝手に手を加えたのが以下です。</p>
<h4>Another HTML-lint gateway のチェック結果をタブで開くブックマークレット</h4>
<p>( target=&#8221;_blank” なだけだから、タブで開くとは限らないけど )</p>
<pre class="brush: jscript; title: ; notranslate">javascript:var%20f%20=%20document.createElement('form');f.setAttribute('target','_blank');var%20o=new%20Object;o[0]=document.createElement('input');o[0].setAttribute('type','text');o[0].setAttribute('name','Stat');o[0].setAttribute('value','on');o[1]=document.createElement('input');o[1].setAttribute('type','text');o[1].setAttribute('name','Method');o[1].setAttribute('value','URL');o[2]=document.createElement('input');o[2].setAttribute('type','text');o[2].setAttribute('name','URL');o[2].setAttribute('value',location.href);o[3]=document.createElement('input');o[3].setAttribute('type','text');o[3].setAttribute('name','ViewSource');o[3].setAttribute('value','on');for(var%20i%20in%20o){f.appendChild(o[i]);}document.body.appendChild(f);f.action%20=%20'http://openlab.ring.gr.jp/k16/htmllint/htmllint.cgi';f.method%20=%20'POST';f.submit();</pre>
<p>このリンクをブックマークしてもおkです&rarr; <a href="<br />
javascript:var%20f%20=%20document.createElement('form');f.setAttribute('target','_blank');var%20o=new%20Object;o[0]=document.createElement('input');o[0].setAttribute('type','text');o[0].setAttribute('name','Stat');o[0].setAttribute('value','on');o[1]=document.createElement('input');o[1].setAttribute('type','text');o[1].setAttribute('name','Method');o[1].setAttribute('value','URL');o[2]=document.createElement('input');o[2].setAttribute('type','text');o[2].setAttribute('name','URL');o[2].setAttribute('value',location.href);o[3]=document.createElement('input');o[3].setAttribute('type','text');o[3].setAttribute('name','ViewSource');o[3].setAttribute('value','on');for(var%20i%20in%20o){f.appendChild(o[i]);}document.body.appendChild(f);f.action%20=%20'http://openlab.ring.gr.jp/k16/htmllint/htmllint.cgi';f.method%20=%20'POST';f.submit();">Another HTML-lint タブで開く</a></p>
<h3>ブックマークレットの使い方</h3>
<p>うちもほとんど使った事がないんですけど簡単です。<br />
FirefoxやChromeだと上のリンク(Another HTML-lint タブで開く)をブックマークツールバーまでドラッグ&amp;ドロップ<br />
IE8だと(6や7も?) リンクを右クリックして、お気に入りに追加、なんかalertが開くけどok。</p>
<p>lintチェックしたいページでお気に入りに入っているリンクをクリックすれば実行。</p>
<p>別窓や別タブで結果が開くのウザイよって場合は<br />
<a href="http://www.chopstick-brunch.com/2010/05/000025.html">Another HTML-lintのブックマークレット | 沖縄のWebデザイナーChopstickBrunch</a>様のページを参考にしてみてください。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/06/another-html-lint-bookmarklet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/06/another-html-lint-bookmarklet/" />
	</item>
		<item>
		<title>[無料のiPhoneアプリ] いつでも、どこでも、JavaScriptプログラミング！ / JavaScript Anywhere で jQuery。</title>
		<link>http://blog.sakurachiro.com/2010/06/javascript-anywhere/</link>
		<comments>http://blog.sakurachiro.com/2010/06/javascript-anywhere/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 17:45:11 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[iPhone/iTunes]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Google Code]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=1823</guid>
		<description><![CDATA[ちょっと前に見つけて入れてみた iPhone app JavaScript Anywhere が素敵です。 作者様のサイト JavaScript Anywhere HTML、外部.js、外部.cssの各1ファイルを自由に [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100610-1.png" rel="shadowbox[sbpost-1823];player=img;" title="javascript anywhere"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100610-1-e1276103394936.png" alt="[image]javascript anywhereダウンロードページ" title="javascript anywhere" width="480" height="297" class="alignnone size-large wp-image-1824" /></a><br />
ちょっと前に見つけて入れてみた iPhone app <a href="http://itunes.apple.com/jp/app/javascript-anywhere/id363452277?mt=8" target="_blank">JavaScript Anywhere</a> が素敵です。<br />
<span class="note2">作者様のサイト</span><br />
<a href="http://jsany.bornneet.com/">JavaScript Anywhere</a></p>
<p><span class="note2">HTML</span>、<span class="note3">外部.js</span>、<span class="note4">外部.css</span>の各1ファイルを自由に編集していつでもどこでも内蔵ブラウザで動作確認(実行)できます。<br />
そして出来たモノを自分宛にメール送信する事も可能。<br />
iPhoneのキーボードだとタグの入力が恐ろしく面倒臭いんですけど(個人的に &#8216; (シングルクォーテーション)を入力した後にアルファベットに戻るのが納得いかない)、人って慣れるもの。<br />
けどiPhoneで辞書登録ができたら定型文を使えて便利なのになぁ。</p>
<h3>でもって JavaScript Anywhere を使って jQuery の練習をする</h3>
<p>JavaScript Anywhere は jQeury を持っていないので Google Code のものを使わせてもらう。<br />
<a href="http://code.google.com/intl/ja/apis/ajaxlibs/">Google AJAX Libraries API &#8211; Google Code</a><br />
<a href="http://code.google.com/intl/ja/apis/ajaxlibs/documentation/index.html">デベロッパー ガイド &#8211; Google AJAX Libraries API &#8211; Google Code</a></p>
<p>HTMLの&lt;head&gt;内に</p>
<pre class="brush: xml; title: ; notranslate">&lt;script src=&quot;http://www.google.com/jsapi&quot;&gt;&lt;/script&gt;
&lt;script&gt;
  google.load(&quot;jquery&quot;, &quot;1.4.2&quot;);
&lt;/script&gt;
</pre>
<p>もしくは</p>
<pre class="brush: xml; title: ; notranslate">&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot;&gt;&lt;/script&gt;</pre>
<p>これでjQueryが使えるハズ。</p>
<h3>動作確認</h3>
<p>JSタブに</p>
<pre class="brush: jscript; title: ; notranslate">
$(function(){
$(&quot;body&quot;).prepend(&quot;&lt;h1&gt;Hello&lt;/h1&gt;&quot;);
});
</pre>
<p>と入力して Hello が表示されたらおkなハズ。</p>
<h4>JavaScript Anywhere のダウンロードはこちら</h4>
<p><a href="http://itunes.apple.com/jp/app/javascript-anywhere/id363452277?mt=8" target="_blank">iTunes App Store で扱っている iPhone、iPod touch、iPad のJavaScript Anywhere</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/06/javascript-anywhere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/06/javascript-anywhere/" />
	</item>
		<item>
		<title>jQueryでアンカーリンクをスムーズスクロールの練習</title>
		<link>http://blog.sakurachiro.com/2010/06/jquery-smooth-scroll/</link>
		<comments>http://blog.sakurachiro.com/2010/06/jquery-smooth-scroll/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 15:28:50 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=1820</guid>
		<description><![CDATA[要素を動かすのは前回の(フローティングメニュー作成)でなんとなくわかったけど 全体をスクロールさせる方法はさっぱりなので調べた。 $('a[href*=#]').click(function() { #を含むリンクをクリ [...]]]></description>
			<content:encoded><![CDATA[<p>要素を動かすのは前回の(フローティングメニュー作成)でなんとなくわかったけど<br />
全体をスクロールさせる方法はさっぱりなので調べた。</p>
<pre class="brush: jscript; class-name: js-sh; title: ; notranslate">
$(function(){
  $('a[href*=#]').click(function() {
    var $target=$(this.hash);
    var targetY=$target.offset().top;
    $('html').animate({scrollTop: targetY},2000);return false;
  });
});
</pre>
<p><span id="more-1820"></span></p>
<pre><code>$('a[href*=#]').click(function() {</code></pre>
<p>#を含むリンクをクリックすると</p>
<pre><code>var $target=$(this.hash);
var targetY=$target.offset().top;</code></pre>
<p>クリックされた要素のハッシュを$targetに入れて<br />
offset().top;で位置を調べてtargetYに入れる</p>
<pre><code>$('html').animate({scrollTop: targetY},2000);return false;</code></pre>
<p>scrollTop(=スクロールの位置)に先程調べたtargetYを入れる、2000ミリ秒で移動完了。</p>
<p>以上のコードでFirefox、Opera、IE8と動いた<br />
さすがjQuery、案外簡単にできちゃうんだなぁと思っていたら<br />
Chromeで動かない、うんともすんとも言わない(safariの確認はしてない)。</p>
<h3>$(&#8216;html&#8217;).を変更する</h3>
<pre><code>$('html,body')</code></pre>
<p>とすると<br />
chromeでも動くようになった、良かった。</p>
<h3>だが<del>断る</del>しかし</h3>
<p>今度はOperaで上に戻るスクロールが通常のアンカーリンクのように一瞬でページの一番上まで戻り、それからゆるゆるとスクロールしながら画面がチカチカする。</p>
<p>Operaでは、htmlとbody両方の指定が有効になるのがチラつきの原因みたい。とほほ<br />
<a href="http://keyton-co.jp/blog/memo/article/jQuery%E3%81%A7scrollTo%E3%82%92%E4%BD%BF%E3%81%86%E3%81%A8%E3%81%8D%E3%81%AE%E6%B3%A8%E6%84%8F%E7%82%B9">jQueryでscrollToを使うときの注意点 &#8211; NoteBook</a><br />
$(&#8216;html&#8217;)と$(&#8216;body&#8217;)のどちらが有効か?の表がある。</p>
<blockquote cite="http://keyton-co.jp/blog/memo/article/jQuery%E3%81%A7scrollTo%E3%82%92%E4%BD%BF%E3%81%86%E3%81%A8%E3%81%8D%E3%81%AE%E6%B3%A8%E6%84%8F%E7%82%B9"><p>しかし、operaでは、両方の指定が有効になり、ちらつきの原因となるので、以下のように指定します。</p>
<p>$($.browser.opera ? document.compatMode == &#8216;BackCompat&#8217; ? &#8216;body&#8217; : &#8216;html&#8217; :&#8217;html,body&#8217;)<br />
.animate({scrollTop:目標のオフセット値Y,scrollLeft:目標のオフセット値X});</p></blockquote>
<p>流用させてもらったらこうなった。</p>
<pre class="brush: jscript; class-name: js-sh; title: ; notranslate">
$(function(){
  $('a[href*=#]').click(function() {
    var $target=$(this.hash);
    var targetY=$target.offset().top;
    $($.browser.opera ? document.compatMode == 'BackCompat' ? 'body' : 'html' :'html,body').animate({scrollTop: targetY},2000);return false;
  });
});
</pre>
<p>しかしこの三項演算子が全く解読できない＞＜</p>
<h3>今回チェック用のhtmlとcss</h3>
<pre class="brush: xml; class-name: html-sh; title: ; notranslate">&lt;body&gt;
&lt;p&gt;&lt;a href=&quot;clicktest.html&quot;&gt;clicktest&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;#abc&quot;&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;#def&quot;&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;#ghi&quot;&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;div id=&quot;wrap&quot;&gt; wrap内 &lt;/div&gt;
&lt;p id=&quot;abc&quot;&gt;abc&lt;/p&gt;
&lt;p id=&quot;def&quot;&gt;def&lt;/p&gt;
&lt;p id=&quot;ghi&quot;&gt;ghi&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;#wrap&quot;&gt;to wrap&lt;/a&gt;&lt;/p&gt;
&lt;/body&gt;</pre>
<pre class="brush: css; class-name: css-sh; title: ; notranslate">&lt;style type=&quot;text/css&quot;&gt;
body {
  text-align:center;
}
#wrap {
  height:5000px;
  background-color:#f63;
}
&lt;/style&gt;</pre>
<h3>メモ</h3>
<p>$.browser.～<br />
<a href="http://semooh.jp/jquery/api/utilities/jQuery.browser/">jQuery.browser &#8211; jQuery 日本語リファレンス</a></p>
<blockquote><p>※jQuery 1.3からはサポート外。jQuery.supportを使って下さい。<br />
navigator.userAgentを元に、ユーザエージェントを識別するためのフラグを連想配列として保持しています。<br />
現時点で有効なフラグは次の通りです。<br />
    * safari<br />
    * opera<br />
    * msie<br />
    * mozilla</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/06/jquery-smooth-scroll/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/06/jquery-smooth-scroll/" />
	</item>
		<item>
		<title>Google Analytics 非同期トラッキングコードが、標準のトラッキングコードとしてご利用いただけるようになりました。とのこと。</title>
		<link>http://blog.sakurachiro.com/2010/06/google-analytics-asynctracking/</link>
		<comments>http://blog.sakurachiro.com/2010/06/google-analytics-asynctracking/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 20:46:38 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[とりあえずメモ]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[WPプラグイン]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=1810</guid>
		<description><![CDATA[よくわかっていないで書き込んでます。今更でしたらごめんあそばせ。 どうも非同期トラッキングコードが正式版になったみたい。 Analytics 日本版 公式ブログ: 成長し続ける Google Analytics のエコシ [...]]]></description>
			<content:encoded><![CDATA[<p>よくわかっていないで書き込んでます。今更でしたらごめんあそばせ。</p>
<p>どうも非同期トラッキングコードが正式版になったみたい。<br />
<a href="http://analytics-ja.blogspot.com/2010/05/growing-google-analytics-ecosystem.html">Analytics 日本版 公式ブログ: 成長し続ける Google Analytics のエコシステム</a></p>
<blockquote cite="http://analytics-ja.blogspot.com/2010/05/growing-google-analytics-ecosystem.html"><p>非同期トラッキングコード<br />
昨年 12 月に公開した非同期トラッキングコードが、標準のトラッキングコードとしてご利用いただけるようになりました。新たにプロファイルを作成した際、標準のトラッキングコードとして、トラッキングコード設定ウィザードに表示されます。</p></blockquote>
<h3>違いは何?何かいいことあるの?</h3>
<p>いままで&lt;/body&gt;の直前だった<span class="note2">トラッキングコードの挿入場所が&lt;/head&gt;の直前に変更</span>されたみたい。<br />
それによってより正確に計測できる、と。</p>
<p><a href="http://analytics-ja.blogspot.com/2009/12/new-tracking-code.html">Analytics 日本版 公式ブログ: Google Analytics のトラッキングコードが新しくなりました</a></p>
<blockquote cite="http://analytics-ja.blogspot.com/2009/12/new-tracking-code.html"><p>新しい非同期トラッキングコードは、ga.js トラッキングコードで計測可能なデータセットと同様のものを得ることができます。</p>
<p>両者の唯一の違いは、計測対象ページへの挿入場所です。従来のga.js トラッキングコードの場合、body セクションの最後に挿入することをご推奨しておりました。一方、新しい非同期トラッキングコードは、他のJavaScript コードの読み込みが完了しなくても正常にロードできるため、HTMLファイル内の head セクション内に記述することが可能です。</p>
<p>ページ末尾に入れる ga.js の場合、ページの読み込みに時間がかかると、り離脱したセッションを正確に計測できないという不都合がありましたが、新しいトラッキングコードではそのような懸念がなくより正確なデータを計測できるため、ぜひ多くのユーザーの皆さまにご利用頂ければと思います。</p></blockquote>
<p>「り離脱したセッション」は原文ママです。</p>
<p><span id="more-1810"></span></p>
<p><em>メリットの説明</em></p>
<blockquote cite="http://www.google.com/support/analytics/bin/answer.py?answer=174090"><p>非同期トラッキング コードの主なメリットの 1 つは、HTML 文書の一番上に配置できることです。これによって、ユーザーがページを離れる前にトラッキング ビーコンが送信される可能性が高くなります。JavaScript コードは <head> セクションに配置することが慣例となっており、このコードを </head><head> セクションの一番下に配置すると最高のパフォーマンスが得られます。</head></p></blockquote>
<p><a href="http://www.google.com/support/analytics/bin/answer.py?answer=174090">トラッキング コードの設定 &#8211; Analytics ヘルプ</a></p>
<h3>トラッキングコードの設定</h3>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXX-X']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

&lt;/script&gt;
</pre>
<h4>実際のトラッキングコードが載ってる場所</h4>
<p>Analytics 設定 > プロファイル設定 > トラッキング コード<br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100606-3.png" rel="shadowbox[sbpost-1810];player=img;" title="Google Analytics トラッキング コードの確認手順1"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100606-3-e1275770300918.png" alt="[image]Google Analytics トラッキング コードの確認手順1" title="Google Analytics トラッキング コードの確認手順1" width="240" height="146" class="alignnone size-large wp-image-1811" /></a></p>
<p><a href="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100701-1.png" rel="shadowbox[sbpost-1810];player=img;" title="Google Analytics トラッキング コードの確認手順2"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100701-1-e1277947351615.png" alt="[image]Google Analytics トラッキング コードの確認手順2" title="Google Analytics トラッキング コードの確認手順2" width="240" height="146" class="alignnone size-large wp-image-1954" /></a></p>
<p>アナリティクス以外のjsの置き場所について</p>
<blockquote><p>あらゆるブラウザで最高のパフォーマンスを達成できるように、サイトの他のスクリプトを以下のいずれかの場所に配置することをお勧めします。<br />
HTML の lt;head> セクションのトラッキング コードの前<br />
トラッキング コードとすべてのページ コンテンツの後（HTML body の一番下など）</p></blockquote>
<p>lt;head>は原文ママ。&amp;が抜けてる、google誤字が多いなぁ。</p>
<p>すでに詳しく検証されてる方がいらっしゃいました(はてブ結構な数ついてるのに気付かなかったなぁ)。<br />
<a href="http://t32k.com/mol/2010/05/asynchronous-tracking/#section31">Google Analytics 非同期トラッキングコード再考 | MOL</a><br />
読み込み時間の高速化とか計測の精度向上とか、移行出来るならしたい感じ。</p>
<h3>前置きが長くなったけど本題</h3>
<p>これを読んでいて気になったのは、今WordPressに挿入してるトラッキングコードの事。<br />
乱雑モックアップにはUltimate Google Analytics(<a href="http://www.oratransplant.nl/uga/">OraTransplant » Ultimate Google Analytics plugin for WordPress</a>)というプラグインで自動挿入されとります。<br />
これ最後にアップデートされたのが2008年の2月と少し古い。<br />
今回の変更にあわせてアップデートされるかどうかも微妙。</p>
<p>なので新しい非同期トラッキングコードに対応したプラグインがないかPlugin Directoryを探して見つけたのがこれ。<br />
<a href="http://wordpress.org/extend/plugins/google-analyticator/">WordPress › Google Analyticator « WordPress Plugins</a></p>
<blockquote cite="http://wordpress.org/extend/plugins/google-analyticator/"><p>NEW! Supports standard Google Analytics tracking via the latest async tracking methods (faster and more reliable than the older ga.js tracking method)</p></blockquote>
<h3>使い方</h3>
<p>他のプラグインと一緒。<br />
pluginsにアップしてプラグインを有効化<br />
設定に出現したGoogle Analyticsを開いてUA-xxxxxxx-xを入力。<br />
追跡したいファイルがあるならDownload extensions to track:に拡張子を,(カンマ)区切りで入力、.(ドット)は必要ないっぽい。<br />
特に変更も必要なく使えそうだった。</p>
<p>下の方にGoogle Analytics profile ID:とかいう見覚えの無い項目があった。<br />
Entering your profile ID is optional, and is only useful if you have multiple profiles associated with a single UID.<br />
あなたのプロファイルIDを入力するオプションであり、複数のプロファイルを1つのUID を関連付けられている場合にのみ有用です。(google翻訳)</p>
<h4>Google Analytics profile IDの確認方法</h4>
<p>アナリティクスに<span class="note2">ログインして編集から確認</span>できた。<br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100606-3.png" rel="shadowbox[sbpost-1810];player=img;" title="Google Analytics profile IDの確認手順1"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100606-3-e1275770300918.png" alt="[image]Google Analytics profile IDの確認手順1" title="Google Analytics profile IDの確認手順1" width="240" height="146" class="alignnone size-large wp-image-1811" /></a></p>
<p><a href="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100606-4.png" rel="shadowbox[sbpost-1810];player=img;" title="Google Analytics profile IDの確認手順2"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100606-4-e1275770404359.png" alt="[image]Google Analytics profile IDの確認手順2" title="Google Analytics profile IDの確認手順2" width="240" height="146" class="alignnone size-large wp-image-1812" /></a></p>
<p>切り替えはどういったタイミングで行えばいいんだろう。<br />
とりあえずUltimate Google Analyticsは切ってみた。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/06/google-analytics-asynctracking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/06/google-analytics-asynctracking/" />
	</item>
		<item>
		<title>選択範囲にあわせてガイドを引く.jsx</title>
		<link>http://blog.sakurachiro.com/2010/06/guides-to-the-selection-range/</link>
		<comments>http://blog.sakurachiro.com/2010/06/guides-to-the-selection-range/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 17:12:50 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[jsx]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=1798</guid>
		<description><![CDATA[(なんだかガイドを引くjsxばっかり作ってる気がするけど) 選択範囲に沿ってガイドを引けた方が、前に作ったカンバス枠にガイド引くだけの機能よりシンプルさはあまり変わらず使い道が広がって便利だよなぁとほんのり思ったので改造 [...]]]></description>
			<content:encoded><![CDATA[<p>(なんだかガイドを引くjsxばっかり作ってる気がするけど)<br />
選択範囲に沿ってガイドを引けた方が、前に作ったカンバス枠にガイド引くだけの機能よりシンプルさはあまり変わらず使い道が広がって便利だよなぁとほんのり思ったので改造した。<br />
<kbd class="key">Ctrl + A</kbd>すればカンバス枠の選択範囲が出来るわけだし。</p>
<h3>使い方</h3>
<p>[ファイル] – [スクリプト] – [参照] から下からダウンロードしたjsxを選択する。<br />
(xpの場合) C:\Program Files\Adobe\Adobe Photoshop CS3\プリセット\スクリプト の中に.jsxを入れておけば[ファイル] – [スクリプト] から使用できる。</p>
<p>ExtendScript Toolkitからも使える。</p>
<h3>ダウンロード</h3>
<p><a href="http://sakurachiro.com/_exercise/javascript/jsx/addGuide.jsx">addGuide.jsx｜選択範囲にあわせてガイドを引く.jsx</a></p>
<h3>挙動 / どんなガイドが引かれるか</h3>
<p>こんな感じの選択範囲だと<br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100604-1.png" rel="shadowbox[sbpost-1798];player=img;" title="基本の四角"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100604-1.png" alt="[image]四角形の選択範囲" title="基本の四角" width="480" height="297" class="alignnone size-full wp-image-1799" /></a></p>
<p>こうなる<br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100604-2.png" rel="shadowbox[sbpost-1798];player=img;" title="四角形にガイド"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100604-2.png" alt="[image]ガイドが引かれた" title="四角形にガイド" width="480" height="297" class="alignnone size-full wp-image-1800" /></a></p>
<p>四角じゃない選択範囲だと<br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100604-3.png" rel="shadowbox[sbpost-1798];player=img;" title="円形の選択範囲"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100604-3.png" alt="[image]円形の選択範囲" title="円形の選択範囲" width="480" height="297" class="alignnone size-full wp-image-1801" /></a></p>
<p><span id="more-1798"></span></p>
<p>こうなる<br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100604-4.png" rel="shadowbox[sbpost-1798];player=img;" title="円形の選択範囲でガイドを引いた結果"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100604-4.png" alt="[image]円形の選択範囲でガイドを引いた結果" title="円形の選択範囲でガイドを引いた結果" width="480" height="297" class="alignnone size-full wp-image-1802" /></a></p>
<p>変な形の選択範囲だと<br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100604-5.png" rel="shadowbox[sbpost-1798];player=img;" title="ふきだし型のせんたく範囲"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100604-5.png" alt="[image]ふきだし型のせんたく範囲" title="ふきだし型のせんたく範囲" width="480" height="297" class="alignnone size-full wp-image-1803" /></a></p>
<p>こうなる、予想通り。<br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100604-6.png" rel="shadowbox[sbpost-1798];player=img;" title="選択範囲の外側にガイド"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/06/20100604-6.png" alt="[iamge]ふきだし型選択範囲の外側にガイドが引かれた" title="選択範囲の外側にガイド" width="480" height="297" class="alignnone size-full wp-image-1804" /></a></p>
<h3>ソース</h3>
<pre class="brush: jscript; title: ; notranslate">
function selectionRange(){
	try {
		//選択範囲を取得
		var boundsObj = activeDocument.selection.bounds;
		x1 = parseInt(boundsObj[0]);
		y1 = parseInt(boundsObj[1]);
		x2 = parseInt(boundsObj[2]);
		y2 = parseInt(boundsObj[3]);

		//選択範囲にガイドを引く
		guideWrap(&quot;Vrtc&quot;,x1);//左上
		guideWrap(&quot;Vrtc&quot;,x2);//右上
		guideWrap(&quot;Hrzn&quot;,y1);//左上
		guideWrap(&quot;Hrzn&quot;,y2);//左下
	}
	catch(e){
		alert(&quot;選択範囲がありません。&quot;);
	}
}

function guideWrap(direction,position){
var id1 = charIDToTypeID( &quot;Mk  &quot; );
    var desc1 = new ActionDescriptor();
    var id2 = charIDToTypeID( &quot;Nw  &quot; );
        var desc2 = new ActionDescriptor();
        var id3 = charIDToTypeID( &quot;Pstn&quot; );
        var id4 = charIDToTypeID( &quot;#Pxl&quot; );
        desc2.putUnitDouble( id3, id4, position );
        var id5 = charIDToTypeID( &quot;Ornt&quot; );
        var id6 = charIDToTypeID( &quot;Ornt&quot; );
        var id7 = charIDToTypeID( direction );
        desc2.putEnumerated( id5, id6, id7 );
    var id8 = charIDToTypeID( &quot;Gd  &quot; );
    desc1.putObject( id2, id8, desc2 );
executeAction(id1,desc1,DialogModes.NO);
}

// ==========
// 実行
// ==========
selectionRange();</pre>
<h4>参考</h4>
<p>選択範囲の取得方法を参考にさせていただきました。<br />
<a href="http://www.y-tti.com/blog/2008/04/photoshopscriptcs3.php">崖っぷちWEBデザイナーブログ | photoshopのscript機能メモ（CS3）</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/06/guides-to-the-selection-range/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/06/guides-to-the-selection-range/" />
	</item>
		<item>
		<title>大量のテクスチャー画像を、超簡単にパターン登録する.jsx ( バッチ処理不使用</title>
		<link>http://blog.sakurachiro.com/2010/05/add-pattern-2/</link>
		<comments>http://blog.sakurachiro.com/2010/05/add-pattern-2/#comments</comments>
		<pubDate>Sun, 23 May 2010 12:02:35 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[jsx]]></category>
		<category><![CDATA[テクスチャー登録]]></category>
		<category><![CDATA[パターン登録]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=1765</guid>
		<description><![CDATA[以前作ったjsxは ( Fireworksのテクスチャー画像等をPhotoshopのパターンに一括登録したい ) .jsxをアクションに登録して [ファイル] &#8211; [自動処理] &#8211; [バッチ] か [...]]]></description>
			<content:encoded><![CDATA[<p>以前作ったjsxは ( <a href="http://blog.sakurachiro.com/2009/11/add-pattern/">Fireworksのテクスチャー画像等をPhotoshopのパターンに一括登録したい</a> ) </p>
<ol>
<li>.jsxをアクションに登録して</li>
<li>[ファイル] &#8211; [自動処理] &#8211; [バッチ] から登録したアクションを指定</li>
</ol>
<p>といった手順を踏む必要があったけれど今回のはバッチ処理なしでいけるはず、多分。<br />
WindowsXPのCS3では大丈夫だった。</p>
<h3>どういったモノ?</h3>
<p>パターンに画像を、ファイル名で登録するだけ。<br />
大量に登録したい時に威力を発揮するはず。</p>
<p>例えばこうゆう.patではないパターン画像を超簡単に一気に登録できる。<br />
<a href="http://77words.deviantart.com/art/patterns-set-no-7-61003303">patterns: set no.7 by ~77words on deviantART</a></p>
<h3>使い方</h3>
<p>[ファイル] &#8211; [スクリプト] &#8211; [参照] から下からダウンロードしたjsxを選択する。<br />
(xpの場合) C:\Program Files\Adobe\Adobe Photoshop CS3\プリセット\スクリプト の中に.jsxを入れておけば[ファイル] &#8211; [スクリプト] から使用できる。</p>
<p>ExtendScript Toolkitからも使える。</p>
<h3>ダウンロード</h3>
<ul>
<li><a href="http://sakurachiro.com/_exercise/javascript/jsx/addPattern.jsx">addPattern.jsx｜バッチを使わずに画像をファイル名でパターンに追加する.jsx</a></li>
</ul>
<p><span id="more-1765"></span></p>
<pre class="brush: jscript; title: ; notranslate">// ==========
// File Name: addPattern.jsx
// File URI: http://sakurachiro.com/_exercise/javascript/jsx/addPattern.jsx
// Description: 画像をパターンに一括登録する
// Author: makoto
// Version: 1.0.0
// Author URI: http://blog.sakurachiro.com/
// Copyright: Copyright 2010 makoto
// ==========

textureFolderObj = Folder.selectDialog(&quot;パターンに登録したい画像があるフォルダを選択してください&quot;);
if (textureFolderObj) {
  fileSet(textureFolderObj);
}

function fileSet(textureFolderObj) {
  var textureFileList = textureFolderObj.getFiles();
  for (var i = 0; i &lt; textureFileList.length; i++) {
    var textureFileObj = textureFileList[i];
    if (textureFileObj.name.indexOf(&quot;.&quot;) &lt; 0) {
      //拡張子がなければフォルダと判断
      fileSet(textureFileObj);
    } else if (textureFileObj.name.match(/.png|.jpg|.jpeg|.gif/g)) {
      //正規表現に自信はないけど動いているようだ
      addTexture(textureFileObj);
    }
  }
}

function addTexture(textureFileObj) {
	open(new File(textureFileObj));

  // ==========
  // 登録する
  // ==========
  var idMk = charIDToTypeID(&quot;Mk  &quot;);
  var desc1 = new ActionDescriptor();
  var idNull = charIDToTypeID(&quot;null&quot;);
  var ref1 = new ActionReference();
  var myPtrn = charIDToTypeID(&quot;Ptrn&quot;);
  ref1.putClass(myPtrn);
  desc1.putReference(idNull, ref1);
  var idUsng = charIDToTypeID(&quot;Usng&quot;);
  var ref2 = new ActionReference();
  var idPrpr = charIDToTypeID(&quot;Prpr&quot;);
  var idFsel = charIDToTypeID(&quot;fsel&quot;);
  ref2.putProperty(idPrpr, idFsel);
  var idDcmn = charIDToTypeID(&quot;Dcmn&quot;);
  var idOrdn = charIDToTypeID(&quot;Ordn&quot;);
  var idTrgt = charIDToTypeID(&quot;Trgt&quot;);
  ref2.putEnumerated(idDcmn, idOrdn, idTrgt);
  desc1.putReference(idUsng, ref2);
  var idNm = charIDToTypeID(&quot;Nm  &quot;);
  var docName = app.activeDocument.name;
  desc1.putString(idNm, docName);
  executeAction(idMk, desc1, DialogModes.NO);

  // ==========
  // 閉じる
  // ==========
  var idCls = charIDToTypeID(&quot;Cls &quot;);
  executeAction(idCls, undefined, DialogModes.NO);
}
</pre>
<h3>今回詰まったところ</h3>
<p>バッチにある「サブフォルダをすべて含める」をjsxでどうやって書いていいのかがさっぱりだった。</p>
<p>こんな風に書いて、</p>
<pre class="brush: jscript; title: ; notranslate">var myFolder = Folder.selectDialog(&quot;フォルダを選択&quot;);
var myFiles = myFolder.getFiles();
for(i=0;i&lt;myFiles.length;i++){
 alert(myFiles.length);
}
</pre>
<p>下記画像ような中身のフォルダを選択すると、困った事にmyFiles.lengthは<span class="note2">7</span>になる。<br />
<img src="http://blog.sakurachiro.com/wp-content/uploads/2010/05/20100523-1.png" alt="選択したフォルダの中身の例" title="選択したフォルダの中身の例" width="210" height="159" class="alignnone size-full wp-image-1766" /></p>
<h4>そんな時とても参考になったページ</h4>
<p><a href="http://dtp-bbs.com/mt/dtpbbs/archives/illustratorphotoshop_20090417093139.html">IllustratorとPhotoshopのファイル名埋め込み</a><br />
<a href="http://dtp-bbs.com/mt/dtpbbs/archives/i/illustratorphotoshop_20090417093139.html">IllustratorとPhotoshopのファイル名埋め込み &#8211; for iPhone</a></p>
<p><span class="note2">ExtendScript Toolkit</span>を使ってみたんだけど<br />
ちゃんと書けていたのに「対象アプリケーションを選択」でPhotoshopを選んでいなかった為、いつまでも<strong>openが関数ではありません</strong>等のエラーが出て動かず途方に暮れた。<br />
<img src="http://blog.sakurachiro.com/wp-content/uploads/2010/05/20100523-2.png" alt="ExtendScript Toolkit 2、対象アプリケーションを選択" title="ExtendScript Toolkit 2、対象アプリケーションを選択" width="480" height="297" class="alignnone size-full wp-image-1767" /><br />
ちゃんとadobe photoshop cs3を選択しなければ。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/05/add-pattern-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/05/add-pattern-2/" />
	</item>
		<item>
		<title>懲りずに ) jQueryを使った画面スクロールに合わせてついてくるフローティングメニューが一応形になりまんた。</title>
		<link>http://blog.sakurachiro.com/2010/05/jquery-practice-floating-menu-3/</link>
		<comments>http://blog.sakurachiro.com/2010/05/jquery-practice-floating-menu-3/#comments</comments>
		<pubDate>Fri, 21 May 2010 14:11:19 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=1761</guid>
		<description><![CDATA[前回までの作りは、jsを読み込む元々のhtml(とcss)に多少依存していました。 positionで段組みしてるhtmlに、コンテンツ部分が短い時はmenuがfooterが食い込んじゃう！どうしよう！ なんて、そんな事 [...]]]></description>
			<content:encoded><![CDATA[<p>前回までの作りは、jsを読み込む元々のhtml(とcss)に多少依存していました。</p>
<p>positionで段組みしてるhtmlに、コンテンツ部分が短い時はmenuがfooterが食い込んじゃう！どうしよう！<br />
なんて、そんな事はコーディングする時にどうにかする問題で、javascriptでどうにかしなきゃならんもんではないだろうし<br />
同じように、メニューを動くようにする為に、予めpositionを仕込んでおかなければならないなんてのも良くないかと。</p>
<p>今回は、元々あるレイアウト(htmlやcss)になるべく手を加えずとも動くようにしたい。を念頭にやったので、floatで組んだページも、positionで組んだページも、フッターの有無に関わらず使えるように出来たと思う。<br />
メニューとフッターのidを合わせるか追加する必要はあるけれど。</p>
<dl>
<dt><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/05/20100521-1.png" alt="floatレイアウト" title="floatレイアウト" width="480" height="300" class="alignnone size-full wp-image-1762" /></dt>
<dd><a href="http://sakurachiro.com/_exercise/javascript/floatingmenu/relative.html">floatレイアウトにフローティングメニューを追加のサンプル</a></dd>
<dt><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/05/20100521-2.png" alt="positionレイアウト" title="positionレイアウト" width="480" height="300" class="alignnone size-full wp-image-1763" /></dt>
<dd><a href="http://sakurachiro.com/_exercise/javascript/floatingmenu/absolute.html">positionレイアウトにフローティングメニューを追加のサンプル</a>
</dd>
</dl>
<p><span class="note4">作成したjavascript</span><br />
<a href="http://sakurachiro.com/_exercise/javascript/floatingmenu/floatingmenu-v2.0.2.js" target="_blank">floatingmenu-v2.0.2.js</a></p>
<p>あるぇ？<br />
&#8220;続きを読む&#8221;以降の文章が全部なくなってる…なぜ…</p>
<p><span id="more-1761"></span></p>
<h3>使い方</h3>
<p>次の2つのファイルをダウンロード</p>
<ul>
<li><a href="http://jquery.com/">jQuery: The Write Less, Do More, JavaScript Library</a></li>
<li><a href="http://sakurachiro.com/_exercise/javascript/floatingmenu/floatingmenu-v2.0.2.js" target="_blank">floatingmenu-v2.0.2.js</a></li>
</ul>
<p>イージングを追加したいなら以下も。</p>
<ul>
<li><a href="http://gsgd.co.uk/sandbox/jquery/easing/">jQuery Easing Plugin</a></li>
</ul>
<p><span class="note2">hemlの&lt;head&gt;内で読み込む</span></p>
<pre class="brush: xml; title: ; notranslate">&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;_js/jquery-1.4.2.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;_js/floatingmenu-float-a.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;</pre>
<p><span class="note2">floatingmenu-v2.jsを開くと最初に設定する部分があるので適当に書き換える。</span></p>
<pre class="brush: jscript; title: ; notranslate">
//メニューの上部に余白を設けるなら入力 / 単位px
  offsetY = 10;
//absoluteでコンテンツ部分が短い時のメニューとフッターの余白 / 単位px
  minMargin = 10;
//処理時間 (ミリ秒)  / 0だとposition:fixedのようになる、チラつくけど
  duration = 900;
//移動させるメニューのid
  _foName = '#nav';
//positionで組んだレイアウトは「0」 floatで組んだレイアウトは「1」
  _navRelative = 1;
//フッター部分のid
  _ftName = '#footer';
//イージングタイプ / 使いたいのがなければjQuery Easing Pluginを追加してもいい
  easingSet = 'swing';</pre>
<h3>つまったところや、よく分からない部分</h3>
<p>cssのプロパティの記述が違う部分がある？<br />
margin-top は marginTop とも書ける？<br />
いやmarginTopはcssじゃないのか、なんだろ？</p>
<h4>cssを複数指定する方法</h4>
<pre class="brush: jscript; title: ; notranslate">
$(&quot;#example&quot;).css('background', 'tomato').css('height','100px').css('text-align','center');
$('#example').css({'height' : '100px','text-align' : 'center','background' : 'tomato'});
</pre>
<p>なので作成したfloatingmenu-v2.0.1.jsの以下の部分を</p>
<pre class="brush: jscript; title: ; notranslate">
$(_ftName).css('position', 'absolute').css('width', ftWidth).css('top', navHeight + navSetY + minMargin);
</pre>
<p><del datetime="2010-05-22T07:31:27+00:00">こう書いたら上手く動かなかった</del>と思ったら動いた。あるぇ?</p>
<pre class="brush: jscript; title: ; notranslate">$(_ftName).css({
'position' : 'absolute',
'width': ftWidth,
'top': navHeight + navSetY + minMargin
});</pre>
<p>上記確認をしていて不具合を発見 v2.0.2に修正した。<br />
positionを使ってでfooterがnavと重なるのを解決させると、<br />
footerの下に何か要素があった場合、今度はそれがnavに食い込んでしまうので<br />
footerにmargin-topをつけてfooterの下の要素も押し出すようにした。<br />
そうした所bodyのheightが伸びるから、navがスクロールする場合があった。<br />
flagをつけてfooterを伸ばした時はnavを動かさないようにした。</p>
<p>console.log() の位置によって挙動が変わる？<br />
出来ないと思ってた事が console.log を削除すると動く。</p>
<h4>pxがつく要素からpxを取るには</h4>
<p><span class="note2">parseIntを使う。</span></p>
<pre class="brush: css; title: ; notranslate">
#example{
margin-top:100px;
}
</pre>
<pre class="brush: jscript; title: ; notranslate">
$('#example').css('margin-top');
//100px

parseInt($('#example').css('margin-top'));
//100
</pre>
<blockquote cite="http://ascii.jp/elem/000/000/463/463680/index-3.html"><p>parseIntを使えば文字列を数値に変換できるので、以下の記述では「300+300+&#8221;px&#8221;」と認識されます。最初の+は数値と数値の間にある算術演算子の+なので足し算として扱われて「600」になり、次の+で文字列の「px」と連結されて、「600px」を設定できます。</p>
<pre><code>parseInt($("#navi .pageWrap").css("margin-left"))+300+"px"
</code></pre>
</blockquote>
<p><a href="http://ascii.jp/elem/000/000/463/463680/index-3.html">ASCII.jp：jQueryで作る画像ギャラリーのチュートリアル ｜Web制作の現場で使えるjQuery　UIデザイン入門</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/05/jquery-practice-floating-menu-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/05/jquery-practice-floating-menu-3/" />
	</item>
		<item>
		<title>続き / スクロールに合わせて、移動するメニュー(要素)</title>
		<link>http://blog.sakurachiro.com/2010/05/jquery-practice-floating-menu-2/</link>
		<comments>http://blog.sakurachiro.com/2010/05/jquery-practice-floating-menu-2/#comments</comments>
		<pubDate>Tue, 18 May 2010 06:26:37 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[html/css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[コードフォーマット]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=1755</guid>
		<description><![CDATA[この投稿には最新版(続き)があります。 懲りず ) jQueryを使った画面スクロールに合わせてついてくるフローティングメニューが一応形になりまんた。 二転三転中、最初の見極めが甘いんだろうなぁ 作って試してみると、じゃ [...]]]></description>
			<content:encoded><![CDATA[<p>この投稿には最新版(続き)があります。<br />
<a href="http://blog.sakurachiro.com/2010/05/jquery-practice-floating-menu-3/">懲りず ) jQueryを使った画面スクロールに合わせてついてくるフローティングメニューが一応形になりまんた。</a></p>
<p><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/05/20100518-1.png" alt="jQuery練習中" title="jQuery練習中" width="480" height="297" class="alignnone size-full wp-image-1756" /></p>
<p>二転三転中、最初の見極めが甘いんだろうなぁ<br />
作って試してみると、じゃあこうゆう時はどうなる？こうなったら？が出てくること出てくること。<br />
あーしたい、こーしたいって欲も。</p>
<h3><a href="http://blog.sakurachiro.com/2010/05/jquery-practice-floating-menu/">前回</a>の練習以降に変更した事。</h3>
<p><a href="http://sakurachiro.com/_exercise/javascript/floatingmenu/q4.html">_1.footerと被った部分の処理とあえて移動させない処理。</a><br />
ウインドウサイズをちょこちょこ縮めていくと(普通はそんな使い方しないけど)メニューとフッターが被る。<br />
処理を1.ヘッダーが画面内にある場合 / 2.フッターが画面内にある場合 / 3.両方画面内にない場合の3段階に分けて、メニューが移動する位置などを決めるようにした。</p>
<p><a href="http://sakurachiro.com/_exercise/javascript/floatingmenu/q4-short.html">_2.コンテンツの中身が全然ないhtmlの場合</a><br />
4.ヘッダーもフッターも同じ画面にある場合はどうなるの?と思って試してみた。<br />
コンテンツ部分を短くしたら(このページは現在製作中です的な長さ、公開するなよって話)不具合が。</p>
<p><a href="http://sakurachiro.com/_exercise/javascript/floatingmenu/q4-short-fixed.html">_3.コンテンツの中身が全然ないhtmlの場合:修正</a><br />
短い場合の修正として、コンテンツの高さを無理やり広げた。<br />
そうしたところ、今度はbodyの高さを取得する順番なんかが狂ってしまった。<br />
スクロールに合わせて移動するメニューなのに移動させない処理を追加</p>
<p><a href="http://sakurachiro.com/_exercise/javascript/floatingmenu/q5.html">_4.javascript外部化、要素名を変数化</a><br />
いままでのままだと、移動する要素ややヘッダーやフッターの名前を変更したい時に書き換える部分が沢山あるので変数にした、速度とかも。あとhead内の記述から.jsにした。</p>
<p><span id="more-1755"></span></p>
<h3>外部化したけど、どんなhtmlにも読み込んだらそのまま使えるの?</h3>
<p>これがまた使えないんですよねぇ。<br />
まずフッター要素が無いと使えない。ふむー</p>
<p>次に、position周りの指定は自分でやる必要がある。<br />
移動する要素のidも揃える、これは仕方がない。</p>
<p>他の人はどうやってるんだろう?</p>
<p>こういったフローティングメニューを配布してる人の設置方法を流し読みした感じだと、<br />
いろんなhtmlに使う場合でも、フロートさせる要素しか変更しないで平気そうなんですよね。</p>
<p>どうやったら簡単に使いまわせるようになるんだろうか(次の課題)。</p>
<p><em class="note2">[追記 / 20100518 19:24]</em><br />
ちょっと調べた。<br />
positionを使った2カラムレイアウトの考え方がそもそも違ってたみたい。<br />
<img src="http://blog.sakurachiro.com/wp-content/uploads/2010/05/20100518-3.png" alt="レイアウト" title="レイアウト" width="480" height="300" class="alignnone size-full wp-image-1759" /><br />
大体#navにabsoluteをつけるか / relativeかの2パターンあった。</p>
<p>うちのやり方は<br />
<h4>#navにabsolute</h4>
<p>(親要素にrelative)。<br />
で#articleのmarginに#navのwidth分を設定してズラす。<br />
これだと見た目は2カラムになっているけど、実際は1カラム。</p>
<p><span class="note3">メリット</span><br />
左右marginや#navのwidthなんかをemで設定出来る、あと#articleのwidthを設定しなくてもいい。</p>
<p><span class="note4">デメリット</span><br />
見た目が2カラムだけど実際は1カラムだから、#articleの内容が#navより少ないと#footerが食い込んでくる(#navの高さで#containerが拡張されない)。</p>
<h4>#containerがrelativeで#navもrelativeの場合</h4>
<p>floatと併用してやってるみたい。</p>
<p><span class="note3">メリット</span>と<span class="note4">デメリット</span><br />
両方ともfloatの2カラムと同じ。</p>
<p>#navも#articleもwidthをちゃんと設定しなきゃいけないし、<br />
左右marginにemを使ったりしたら文字サイズを拡大したときにカラムが崩れる。<br />
アバウトに組めないけど普通はpxできっちりやってるからあまり困らない?</p>
<p>なにより#articleの内容が#navより少なくても、<br />
#containerにclearfixを使えばrelativeのデメリットに書いた現象は起きないです。</p>
<p>うちが今回使ってたcssの組み方だと、最初の理由で#articleの高さが無い時に#footerが食いこむ。<br />
それを回避する為にjQueryを使って(練習なので)#navの高さを#articleの高さに移植した。</p>
<p>なので、高さを計算するのに#articleか#footerの名前が必要だった。<br />
#containerにmin-height使えばいいんだけど、せっかくだから高さ計算しないでも使いたいなぁ。</p>
<p>#navにもrelativeの方すると、#articleが短いときに重なりはしないだろうけど、ウインドウを縮めていったときにどうやってstopする位置を計算するんだろう?</p>
<h3>現状のソースと使い方</h3>
<p><a href="http://sakurachiro.com/_exercise/javascript/floatingmenu/floatingmenu.js">直接floatingmenu.jsを、開いたりするのはこっちから。</a></p>
<h4>使い方</h4>
<p><span class="note1b">_1.</span> / 以下の二つを保存して読み込む</p>
<ul>
<li><a href="http://jquery.com/" target="_blank">jquery-1.4.2.js</a></li>
<li><a href="http://sakurachiro.com/_exercise/javascript/floatingmenu/floatingmenu.js" target="_blank">floatingmenu.js</a></li>
</ul>
<p>_jsフォルダに保存してるならこんな感じ。</p>
<pre class="brush: xml; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot; src=&quot;_js/jquery-1.4.2.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;_js/floatingmenu.js&quot;&gt;&lt;/script&gt;
</pre>
<p><span class="note1b">_2.</span> / &#8220;floatingmenu.js&#8221;を開いて11行目から適当に変更</p>
<ul>
<li>offsetY = 13; //フロートさせるボックスの上マージン 単位はpx。</li>
<li>duration = 800; //処理時間 (ミリ秒) 0だとposition:fixedのようになる、チラつくけど</li>
<li>_mcName = &#8216;#main&#8217;; //メインコンテンツ部分</li>
<li>_foName = &#8216;#primaryNavigation&#8217;; //フロートさせるボックス部分</li>
<li>_ftName = &#8216;#footer&#8217;; //フッター部分</li>
</ul>
<p><span class="note1b">_3.</span> / htmlとpositionの処理</p>
<p>現状footer要素が必要<br />
        フロートさせるボックスに<span class="note1">position:absolute;</span> 親要素に<span class="note1">position:relative;</span></p>
<p><span class="note2">ソース</span> / javascriptソースをフォーマットしてくれるサイトを利用しました。<br />
<a href="http://jsbeautifier.org/">Online javascript beautifier</a></p>
<p><em class="note2">[修正した / 20100518 17:23]</em><br />
でもまだ修正がある、どうしよう。</p>
<pre class="brush: jscript; title: ; notranslate">//jquery.easing.1.3.jsから
jQuery.extend(jQuery.easing, {
  easeOutCubic: function (x, t, b, c, d) {
    return c * ((t = t / d - 1) * t * t + 1) + b;
  }
});

$(function () {
  //[設定する部分]-------------------------
  offsetY = 13; //メニュー上のマージン 1em
  duration = 800; //処理時間 (ミリ秒) 0だとposition:fixedのようになる、チラつくけど
  _mcName = '#main'; //メインコンテンツ部分
  _foName = '#primaryNavigation'; //フロートさせるボックス部分
  _ftName = '#footer'; //フッター部分
  //[/設定する部分]-------------------------
  mainContent = $(_mcName).outerHeight(true); //メインコンテンツの高さ
  navHeight = $(_foName).outerHeight(true); //ナビゲーションのmargin+border+padding+heightを合わせた高さ
  navHeights = navHeight + offsetY;

  bodyHeight = $('body').outerHeight(true); //コンテンツの高さ
  naviSetY = $(_foName).offset().top; //ナビゲーションの初期座標(=margin・paddingを含めたheadの高さ)
  footerSetY = parseInt($(_ftName).offset().top); //フッターの初期座標(=margin・paddingを含めたheadの高さ)
  naviMarginSetY = naviSetY - offsetY; //ヘッダの高さを超えた時の位置用
  //↓body全体の高さからfooterの座標を引くとbodyのpaddingやmarginなどを含めたfooterの高さになる?
  footerArea = bodyHeight - footerSetY; //footer、実際の高さ
  desiredHeight = navHeights + footerArea; //必要な高さ(footer+naviの高さ)
  naviMaxY = bodyHeight - desiredHeight; //naviが重ならずに降りられる一番下
  floatObjMoveChk(mainContent - navHeights);
});

//スクロール毎の処理

function floatObjMove() {
  $(window).scroll(function () {
    var naviScrollTop = parseInt($(this).scrollTop()); //スクロール量
    if (navHeights &lt; windowHeight) {

      //スクロール量が最初の位置より小さい内は
      if (naviScrollTop &lt;= naviSetY) {
        $(_foName).animate({
          top: 0
        }, {
          duration: duration,
          queue: false,
          easing: &quot;easeOutCubic&quot;
        });
      }
      //
      else if (naviMaxY &lt; naviScrollTop) {
        $(_foName).animate({
          top: naviMaxY - naviSetY
        }, {
          duration: duration,
          queue: false,
          easing: &quot;easeOutCubic&quot;
        });
      }
      //(naviMaxY-naviSetYの理由:メニュー自体ヘッダーの下で0だけど、bodyからみたらヘッダ分下にある
      //ヘッダもフッタも無い位置
      else {
        $(_foName).animate({
          top: naviScrollTop - naviMarginSetY
        }, {
          duration: duration,
          queue: false,
          easing: &quot;easeOutCubic&quot;
        });
      }
      //ウインドウサイズが足りないので動かない。
    } else {
      //console.log(&quot;ウィンドウの高さ:&quot;+windowHeight,&quot; / メニューの高さ:&quot;+desiredHeight,&quot;クリック出来ないメニューが出来るので動かさない&quot;);
    }
  });
}

//リサイズしたらwindowのサイズを変更
$(window).resize(function () {
  windowHeight = parseInt($(window).height()); //windowのサイズ
});

function floatObjMoveChk(val) {
  if (val &lt; 0) {
    $(_mcName).css('height', navHeight);
  } else {
    windowHeight = $(window).height(); //変更後windowのサイズ
    floatObjMove();
  }
}</pre>
<p>修正前</p>
<pre class="brush: jscript; title: ; notranslate">//jquery.easing.1.3.jsから
jQuery.extend(jQuery.easing, {
  easeOutCubic: function (x, t, b, c, d) {
    return c * ((t = t / d - 1) * t * t + 1) + b;
  }
});

$(function () {
//[設定する部分]-------------------------

  offsetY = 13; //メニュー上のマージン 1em
  duration = 800; //処理時間 0だとposition:fixedのようになる、チラつくけど
  _mcName = '#main'; //メインコンテンツ部分
  _foName = '#primaryNavigation'; //フロートさせるボックス部分
  _ftName = '#footer'; //フッター部分

//[/設定する部分]-------------------------

  mainContent = $(_mcName).outerHeight(true); //メインコンテンツの高さ
  navHeight = $(_foName).outerHeight(true); //ナビゲーションのmargin+border+padding+heightを合わせた高さ
  navHeights = navHeight + offsetY;

  floatObjMoveChk(mainContent - navHeights);
});

function floatObjMoveSet() {
  bodyHeight = $('body').outerHeight(true); //コンテンツの高さ
  windowHeight = $(window).height(); //windowのサイズ
  naviSetY = $(_foName).offset().top; //ナビゲーションの初期座標(=margin・paddingを含めたheadの高さ)
  footerSetY = parseInt($(_ftName).offset().top); //フッターの初期座標(=margin・paddingを含めたheadの高さ)
  naviMarginSetY = naviSetY - offsetY; //ヘッダの高さを超えた時の位置用
  //↓body全体の高さからfooterの座標を引くとbodyのpaddingやmarginなどを含めたfooterの高さになる?
  footerArea = bodyHeight - footerSetY; //footer、実際の高さ
  desiredHeight = navHeights + footerArea; //必要な高さ(footer+naviの高さ)
  naviMaxY = bodyHeight - desiredHeight; //naviが重ならずに降りられる一番下
  /*footerHeight=$(_ftName).outerHeight(true);*/
  floatObjMove();

}

//スクロール毎の処理

function floatObjMove() {
  $(window).scroll(function () {
    var naviScrollTop = parseInt($(this).scrollTop()); //スクロール量
    if (navHeights &lt; windowHeight) {

      //スクロール量が最初の位置より小さい内は
      if (naviScrollTop &lt; naviSetY) {
        $(_foName).animate({
          top: naviScrollTop
        }, {
          duration: duration,
          queue: false,
          easing: &quot;easeOutCubic&quot;
        });
      }
      //
      else if (naviMaxY &lt; naviScrollTop) {
        $(_foName).animate({
          top: naviMaxY - naviSetY
        }, {
          duration: duration,
          queue: false,
          easing: &quot;easeOutCubic&quot;
        });
      }
      //(naviMaxY-naviSetYの理由:メニュー自体ヘッダーの下で0だけど、bodyからみたらヘッダ分下にある
      //ヘッダもフッタも無い位置
      else {
        $(_foName).animate({
          top: naviScrollTop - naviMarginSetY
        }, {
          duration: duration,
          queue: false,
          easing: &quot;easeOutCubic&quot;
        });
      }
      //ウインドウサイズが足りないので動かない。
    } else {
      //console.log(&quot;ウィンドウの高さ:&quot;+windowHeight,&quot; / メニューの高さ:&quot;+desiredHeight,&quot;クリック出来ないメニューが出来るので動かさない&quot;);
    }
  });
}

//リサイズしたらwindowのサイズを変更
$(window).resize(function () {
  windowHeight = parseInt($(window).height()); //windowのサイズ
  //console.log(&quot;リサイズしたよ:&quot;+windowHeight);
  floatObjMoveSet();
});

function floatObjMoveChk(val) {
  if (val &lt; 0) {
    $(_mcName).css('height', navHeight);
  } else {
    floatObjMoveSet();
  }
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/05/jquery-practice-floating-menu-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/05/jquery-practice-floating-menu-2/" />
	</item>
		<item>
		<title>jQueryの練習 / スクロールに合わせて、移動するメニュー(要素)</title>
		<link>http://blog.sakurachiro.com/2010/05/jquery-practice-floating-menu/</link>
		<comments>http://blog.sakurachiro.com/2010/05/jquery-practice-floating-menu/#comments</comments>
		<pubDate>Sat, 15 May 2010 19:39:46 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=1750</guid>
		<description><![CDATA[この投稿には最新版(続き)があります。 懲りず ) jQueryを使った画面スクロールに合わせてついてくるフローティングメニューが一応形になりまんた。 jQueryの練習 よくある&#8221;スクロールしてもついてくる [...]]]></description>
			<content:encoded><![CDATA[<p>この投稿には最新版(続き)があります。<br />
<a href="http://blog.sakurachiro.com/2010/05/jquery-practice-floating-menu-3/">懲りず ) jQueryを使った画面スクロールに合わせてついてくるフローティングメニューが一応形になりまんた。</a></p>
<p>jQueryの練習<br />
よくある&#8221;スクロールしてもついてくるメニュー&#8221;を、作ってみようと試行錯誤中。</p>
<p><a href="http://blog.sakurachiro.com/wp-content/uploads/2010/05/20100516-2.png" rel="shadowbox[sbpost-1750];player=img;" title="jQueryの練習"><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/05/20100516-2-e1273953892614.png" alt="jQueryの練習" title="jQueryの練習" width="479" height="296" class="alignnone size-large wp-image-1752" /></a></p>
<p>やってる事は、position:absoluteしてある要素のtopを、スクロールした分に近づける処理の繰り返し、だと想像。<br />
スクロール量の取得方法、要素をブラウザ上部からみた位置の取得方法、animateの使い方とイージングの追加方法等を調べて試してみた。</p>
<h3>使ったライブラリ</h3>
<ul>
<li><a href="http://jquery.com/" target="_blank">jquery-1.4.2.js</a></li>
<li><a href="http://gsgd.co.uk/sandbox/jquery/easing/" target="_blank">jquery.easing.1.3.js</a> / easingの種類を増やす</li>
</ul>
<p><span id="more-1750"></span></p>
<h3>練習の途中経過</h3>
<p>      <em class="note2">[追記 / 20100517]</em><br />
IE6-7でめちゃくちゃ崩れててびっくりした。<br />
以下を追加して回避</p>
<pre class="brush: css; title: ; notranslate">
  top:0;
  left:0;/*これがないとIE7が右にずれる*/
  _margin-left:-12em;/*ie6が#mainのmarginに引きづられるバグの対処*/
</pre>
<p>IE6ではposition:absoluteしたメニューの次に続く要素のmargin分メニューが引きづられてた<br />
ハックでマイナスマージンつかって戻した。<br />
IE7はtop,leftのleftを指定しないとこれまた次の要素を基準に配置されてた(と思う)<br />
追記ここまで。</p>
<dl>
<dt><span class="note3">Test page 1.</span><a href="http://sakurachiro.com/_exercise/javascript/floatingmenu/">スクロールに合わせて、移動するメニュー(要素):序</a></dt>
<dd>とりあえず動かしてみる、まずはそれからだ。<br />
      	垂直スクロール量を取得するには以下の記述みたい<br />
      	javascriptだと
<pre class="brush: jscript; title: ; notranslate">var scrollTop  = document.body.scrollTop  || document.documentElement.scrollTop;</pre>
<p>      	ブラウザ毎に挙動が違うのがjavascriptの嫌な所です。</p>
<p>      	jQueryだと以下で取得できるみたい。</p>
<pre class="brush: jscript; title: ; notranslate">$('html').scrollTop();
$(window).scrollTop();
$(document).scrollTop();
</pre>
<p>$(&#8216;html&#8217;).scrollTop() はsafari3で常に0 が返されるので注意らしいです。</p>
<p>      	あとは、jQuery本体が使えるイージングはlinearとswingの二つだと知る。 </dd>
<dt><span class="note3">Test page 2.</span><a href="http://sakurachiro.com/_exercise/javascript/floatingmenu/ha.html">スクロールに合わせて、移動するメニュー(要素):破</a></dt>
<dd>Webっぽいレイアウトの中に入れてみて高さを取得できるかテスト。:序に説明を書き足してたら、すでにヘッダのない2カラムになってたので、あんまり見栄えが変わらず意味がなさそうだけど、問題点が見えてきたのでよし。</p>
<p>      	メニューとコンテンツが被った時にどうするか、ウィンドウの高さが足りない時にどうするかなんかを考えたいところ。</dd>
<dt><span class="note3">Test page 3.</span><a href="http://sakurachiro.com/_exercise/javascript/floatingmenu/q.html">スクロールに合わせて、移動するメニュー(要素):Q</a></dt>
<dd>:破だと、スクロールしてもメニューが初期のx座標を移動するのでヘッダが無い部分だと変。なのでそれを修正してみる。
</dd>
</dl>
<h3>現在の最終的なソースメモ(ゴミは後で削る)</h3>
<p>      	<span class="note2">js</span></p>
<pre class="brush: jscript; title: ; notranslate">&lt;script type=&quot;text/javascript&quot; src=&quot;../../_js/jquery-1.4.2.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;../../_js/jquery.easing.1.3.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
offsetY=13;//1em
naviSet=$('#primaryNavigation').offset().top;//ナビゲーションの初期座標(=margin・paddingを含めたheadの高さ)
naviHeight=$('#primaryNavigation').outerHeight(true);//ナビゲーションのmargin+border+padding+heightを合わせた高さ
footerHeight=$('#footer').outerHeight(true);
bodyHeight=$('body').outerHeight(true);
windowHeight=$(window).height();
naviSetY=naviSet-offsetY;//ヘッダの高さを超えた時の位置用
});

$(window).scroll(function(){
nowY=$('#primaryNavigation').offset().top;//ナビゲーションの初期座標(=margin・paddingを含めたheadの高さ)

// var scrollTop=parseInt($(window).scrollTop());これだとIE6が動かない
 var scrollTop=parseInt($(this).scrollTop());//スクロール量

xmargin=parseInt(bodyHeight-(scrollTop+footerHeight));

if(scrollTop&lt;naviSet){//スクロール量が最初の位置より小さい内は
 $('#primaryNavigation').animate({top:scrollTop},{duration:700,queue:false,easing:&quot;easeOutCubic&quot;});
}else{//最初の位置を越えたら
 $('#primaryNavigation').animate({top:scrollTop-naviSetY},{duration:700,queue:false,easing:&quot;easeOutCubic&quot;});
}
// console.log(&quot;:&quot;+scrollTop);
});
&lt;/script&gt;</pre>
<p><span class="note2">css</span></p>
<pre class="brush: css; title: ; notranslate">&lt;style type=&quot;text/css&quot;&gt;

#primaryNavigation a {
  display:inline-block;
  width:80%;
}

#header {
  font-size:2.5em;
  border-bottom:3px solid #09c;
  margin:0 0 0.5em 0;
}
p.navigationTitle {
  background:#f8f8f8;
  padding:0 0.5em;
  margin-bottom:2px;
}

#contents {
  position:relative;
}
#primaryNavigation {
  color:dimgray;
  background:white;
  z-index:100;
  width:10em;
  margin-left:1em;
  position:absolute;
}
#primaryNavigation ul {
  line-height:2em;
  border-bottom:2px solid #09c;
  margin-bottom:3em;
}
#primaryNavigation li {
  border-top:1px solid #09c;
}

#main {
  margin:0 1em 2em 13em;
}
#main p {
  margin-top:2em;
}
p + p {
  margin-bottom:2em;
}
pre + h2 {
  margin-top:2em;
}
#footer {
  padding:1em;
  border-top:2px solid #09c;
}
&lt;/style&gt;</pre>
<p><span class="note2">html</span></p>
<pre class="brush: xml; title: ; notranslate">&lt;body&gt;
&lt;div id=&quot;wrap&quot;&gt;
  &lt;div id=&quot;header&quot; class=&quot;header&quot;&gt;
    &lt;h1&gt;スクロールに合わせて、移動するメニュー(要素):Q&lt;/h1&gt;
  &lt;/div&gt;
  &lt;div id=&quot;contents&quot;&gt;
    &lt;div id=&quot;primaryNavigation&quot; class=&quot;nav&quot;&gt;
      &lt;p class=&quot;navigationTitle&quot;&gt;&lt;em&gt;乱雑モックアップ&lt;/em&gt;&lt;/p&gt;
      &lt;ul&gt;
        &lt;li&gt;&lt;a href=&quot;#wrap&quot;&gt;pagetop&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;#main&quot;&gt;step3&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;#library&quot;&gt;library&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;#htmlcode&quot;&gt;htmlcode&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;#csscode&quot;&gt;csscode&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;#jscode&quot;&gt;jscode&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;#memo&quot;&gt;memo&lt;/a&gt;&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/div&gt;
    &lt;div id=&quot;main&quot; class=&quot;article&quot;&gt;
      &lt;h2&gt;STEP3.headerが無い部分の高さ調整、footerと被った部分の処理。&lt;/h2&gt;
      &lt;p id=&quot;anchor1&quot;&gt;Lorem  ipsum dolor sit amet, consectetuer adipiscing elit.  Aenean commodo  ligula eget dolor.&lt;/p&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div id=&quot;footer&quot; class=&quot;footer&quot;&gt;
    &lt;p&gt;このページは乱雑モックアップのサンプルページです。&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;</pre>
<h3>とりあえず次は</h3>
<p>      	ウィンドウのサイズが狭いとフッタに被ったりしてるので、重なる前に移動を停止させたい。<br />
      	どんな計算をすればいいのだろうか。<br />
      	あと、Qの次は何てタイトルにすればいいんだろうか。</p>
<h4>参考</h4>
<p>      	<a href="http://semooh.jp/jquery/api/css/scrollTop/_/">scrollTop() &#8211; jQuery 日本語リファレンス</a><br />
      	<a href="http://d.hatena.ne.jp/cyokodog/20090224/jQueryPosSet01">jQuery の位置・サイズ関連メソッドまとめ &#8211; Cyokodog :: Diary</a><br />
      	<a href="http://d.hatena.ne.jp/cyokodog/20090112/jQueryPositionSize03">jQuery でブラウザの表示領域に対するサイズや位置情報を取得してみる &#8211; Cyokodog :: Diary</a><br />
      	TO BE CONTINUED&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/05/jquery-practice-floating-menu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/05/jquery-practice-floating-menu/" />
	</item>
		<item>
		<title>「黄金長方形の軌跡」で回転せよ!そこには「無限に続く力」があるはずだ・・・</title>
		<link>http://blog.sakurachiro.com/2010/05/golden-ratio-silver-ratio/</link>
		<comments>http://blog.sakurachiro.com/2010/05/golden-ratio-silver-ratio/#comments</comments>
		<pubDate>Mon, 10 May 2010 20:40:33 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[とりあえずメモ]]></category>
		<category><![CDATA[黄金比]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=1728</guid>
		<description><![CDATA[javascriptの練習。 黄金比と白銀比を計算するフォーム。 &#62; (ポップアップで開く)ポップアップはIEじゃ動かなかったなぁ。 作ってる途中で思った事、勘違いした事などを思い出してメモ getElements [...]]]></description>
			<content:encoded><![CDATA[<p>javascriptの練習。<br />
<a href="http://sakurachiro.com/_exercise/javascript/golden-silver-ratio/" title="黄金比と白銀比を計算するフォーム。">黄金比と白銀比を計算するフォーム。</a> &gt; <a href="http://sakurachiro.com/_exercise/javascript/golden-silver-ratio/" rel="shadowbox" title="黄金比と白銀比を計算するフォーム。">(ポップアップで開く)</a>ポップアップはIEじゃ動かなかったなぁ。</p>
<p><span id="more-1728"></span></p>
<h3>作ってる途中で思った事、勘違いした事などを思い出してメモ</h3>
<h4>getElementsByTagName</h4>
<p><span class="note2">こんなhtmlがあった時</span></p>
<pre class="brush: xml; title: ; notranslate">
&lt;form&gt;
&lt;input type=&quot;text&quot; value=&quot;1&quot; /&gt;
&lt;input type=&quot;text&quot; value=&quot;2&quot; /&gt;
&lt;input type=&quot;text&quot; value=&quot;3&quot; /&gt;
&lt;input type=&quot;text&quot; value=&quot;4&quot; /&gt;
&lt;input type=&quot;text&quot; value=&quot;5&quot; /&gt;
&lt;/form&gt;
</pre>
<p>次みたいな書き方したら全てのinputタグにアクセスして、valueを「チェンジ」に変更できると思ってた。でも出来ない。</p>
<pre class="brush: jscript; title: ; notranslate">
document.getElementsByTagName(&quot;input&quot;).value=&quot;チェンジ&quot;;
// 結果:1,2,3,4,5
</pre>
<p>こうする。</p>
<pre class="brush: jscript; title: ; notranslate">
var inputAll=document.getElementsByTagName(&quot;input&quot;);
for(var i=0;i&lt;inputAll.length;i++){
inputAll[i].value=&quot;チェンジ&quot;;
}

// 結果:チェンジ,チェンジ,チェンジ,チェンジ,チェンジ
</pre>
<h4>.onkeyup</h4>
<p>なんか入力したら処理。<br />
submitボタンとblurかfocusで計算を開始させていたんだけど、面倒臭かったのでonkeyupにした。</p>
<pre class="brush: jscript; title: ; notranslate">function funckeyupS(){
 var cdbox=document.getElementById(&quot;cd-box&quot;);
 var obj=cdbox.getElementsByTagName(&quot;input&quot;);
 for(var i=0;i&lt;obj.length;i++){
  obj[i].onkeyup=function(){
  calSilverRatio(this.value,this.name);
  }
 }
}</pre>
<p>forの中&#8221;this&#8221;が自分を参照してた、これ普通だっけ?<br />
iを使うと最後のiしかとれないんだっけ?</p>
<h4>isFinite(変数とか数式とか文字列とか)</h4>
<p>数値かどうか調べる、数値ならtrueを返してくれるらしい。</p>
<p>それなのに不思議だなと思う事。</p>
<pre class="brush: jscript; title: ; notranslate">
/*
&amp;goldvalue=inputに入力された数字
goldenRatio=黄金比
$a=1の辺
$b=0.618の辺
$ab=1.618の辺
*/
//$goldvalueが$aの辺で、入ってる数字が309だとして
function calGoldenRatio(goldvalue){
var $goldvalue=Number(goldvalue); //数字にして

if(isFinite($goldvalue)){ //判定
 $b.value=Math.round($a.value/goldenRatio); //四捨五入して$bへ
 $ab-ng.value=$a.value+$b.value; stringの309191が入る
 $ab-ok.value=parseInt($a.value)+parseInt($b.value); //500になる
 //$ab.value=Number($a.value)+Number($b.value);どっちがいいの?
}</pre>
<p>parseInt()かNumber()を使わないと<br />
どっちも数字のハズの$a.valueと$b.valueを足してるのにstringになる。<br />
第2引数を指定してないparseInt()は、01や02などの文字列を渡すと8進数と解釈するらしい。</p>
<h4>その他</h4>
<p>ifで分岐させるとき、「値が入ってなかったらtrue」みたいにしたい時</p>
<pre class="brush: jscript; title: ; notranslate">if(!変数) //これはtrueになると思ったけど期待通りに動かなかった
if(変数==null) //こっちも
if(変数=='') //これはokだった</pre>
<p>どうやるのが正しいんだろう。</p>
<p>あと何か思い出したら書いていきます。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/05/golden-ratio-silver-ratio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/05/golden-ratio-silver-ratio/" />
	</item>
		<item>
		<title>ステージ枠と中央にガイドを引く.jsx</title>
		<link>http://blog.sakurachiro.com/2010/04/canvas-guidejsx/</link>
		<comments>http://blog.sakurachiro.com/2010/04/canvas-guidejsx/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 06:39:57 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[jsx]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=1650</guid>
		<description><![CDATA[[追記 / 20100501] for文の中身を変更した。 使い方イメージ 上のソースを[適当な名前].jsxで保存。 program files以下のphotoshopフォルダにある\プリセット\スクリプト ( C:\ [...]]]></description>
			<content:encoded><![CDATA[<pre class="brush: jscript; title: ; notranslate">var posArr=[0,50,100];//位置%
var dirArr=[&quot;Vrtc&quot;,&quot;Hrzn&quot;];//向き

function guideWrap(direction,position){
var id1 = charIDToTypeID( &quot;Mk  &quot; );
    var desc1 = new ActionDescriptor();
    var id2 = charIDToTypeID( &quot;Nw  &quot; );
        var desc2 = new ActionDescriptor();
        var id3 = charIDToTypeID( &quot;Pstn&quot; );
        var id4 = charIDToTypeID( &quot;#Prc&quot; );
        desc2.putUnitDouble( id3, id4, position );
        var id5 = charIDToTypeID( &quot;Ornt&quot; );
        var id6 = charIDToTypeID( &quot;Ornt&quot; );
        var id7 = charIDToTypeID( direction );
        desc2.putEnumerated( id5, id6, id7 );
    var id8 = charIDToTypeID( &quot;Gd  &quot; );
    desc1.putObject( id2, id8, desc2 );
executeAction(id1,desc1,DialogModes.NO);
}

for(var i=0;i&lt;posArr.length;i++){
    for(var j=0;j&lt;dirArr.length;j++){
        guideWrap(dirArr[j],posArr[i]);
    }
}
</pre>
<p><em class="note2">[追記 / 20100501]</em> for文の中身を変更した。</p>
<p><img src="http://blog.sakurachiro.com/wp-content/uploads/2010/04/20100430-4.png" alt="カンバス枠にガイドを引く.jsxを使ったところ" title="カンバス枠にガイドを引く.jsxを使ったところ" width="391" height="275" class="alignnone size-full wp-image-1651" /></p>
<h3>使い方イメージ</h3>
<p>上のソースを<span class="note4">[適当な名前].jsx</span>で保存。<br />
program files以下のphotoshopフォルダにある\プリセット\スクリプト ( <span class="note2">C:\Program Files\Adobe\Adobe Photoshop CS3\プリセット\スクリプト</span> ) にぶち込むと<span class="note2">[ファイル] &#8211; [スクリプト]</span>から選べるようになるので便利。</p>
<p>[ファイル] &#8211; [スクリプト] &#8211; [参照(B)…]から<span class="note4">[適当な名前].jsx</span>を選んで使える。</p>
<h4>ステージ枠にだけガイドを引くには</h4>
<p>上の.jsxのままだとカンバスの中央にもガイドが引かれて邪魔かもしれない、真ん中のは必要ないよって場合は1行目の50を削除する。</p>
<ul>
<li>ここを　　var posArr=[0,<span class="note3">50</span>,100];</li>
<li>こうする　var posArr=[0,100];</li>
</ul>
<h3>結構作ってる人がいる。</h3>
<p>うちが作ってみた理由もこれと全く同じでした。<br />
<a href="http://dearps.lovwar.com/2009/06/script/">外枠にガイドを引くスクリプト | Dearps ～Adobe Photoshopに関するTipsや便利な裏技を紹介するサイトです～</a></p>
<blockquote cite="http://dearps.lovwar.com/2009/06/script/"><p>カンバスのサイズに合わせたシェイプを描きたい場合等フォトショップはピクセルにスナップしてくれないので外枠にガイドをひく必要があります。</p></blockquote>
<p>高機能、他のjsxもすばらしい。<br />
<a href="http://phize.net/portfolio/photoshop/addguidesex.html">Add Guides EX(1.0.0) &#8211; Adobe Photoshop</a></p>
<blockquote cite="http://phize.net/portfolio/photoshop/addguidesex.html"><p>ダイアログボックスからガイドの位置・幅・間隔・数等を指定することによって、自動的に位置を計算してガイドを作成します。</p></blockquote>
<p>さくさくと引ける。<br />
<a href="http://flabaka.com/blog/?p=1528">flabaka &#8211; 複数のガイドを一度に引けちゃうJSX</a></p>
<blockquote cite="http://flabaka.com/blog/?p=1528"><p>x=50,x=100,x=150,x=200の計4本ガイドを引きたい場合、50,100,150,200と入力し、OKボタンを押します。</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/04/canvas-guidejsx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/04/canvas-guidejsx/" />
	</item>
		<item>
		<title>ie-css3.js ( :nth-childなどのCSS3擬似クラスをIEでも使えるようにするjs ) で失敗した事。</title>
		<link>http://blog.sakurachiro.com/2010/04/ie-css3-js/</link>
		<comments>http://blog.sakurachiro.com/2010/04/ie-css3-js/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 00:46:03 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[CSS3]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=1629</guid>
		<description><![CDATA[動作テストだからといってhtmlのhead内にcss書いて、ローカルで表示確認していたらエラーしか出なくて途方に暮れた… その原因は2つありました。 ローカルだと機能しない cssは外部化しておく 以下、使い方メモなど。 [...]]]></description>
			<content:encoded><![CDATA[<p>動作テストだからといってhtmlのhead内にcss書いて、ローカルで表示確認していたらエラーしか出なくて途方に暮れた…</p>
<h3>その原因は2つありました。</h3>
<ol>
<li>ローカルだと機能しない</li>
<li>cssは外部化しておく</li>
</ol>
<p>以下、使い方メモなど。</p>
<p><span id="more-1629"></span></p>
<p><span class="note2">ヘッダ部分の例</span></p>
<pre class="brush: xml; title: ; notranslate">&lt;!--[if lte IE 8]&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;js/DOMAssistantCompressed-2.8.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;js/ie-css3.js&quot;&gt;&lt;/script&gt;
&lt;![endif]--&gt;</pre>
<p><span class="note2">ie-css3.jsダウンロード先</span><br />
<del datetime="2010-09-23T09:25:57+00:00"><a href="http://www.keithclark.co.uk/labs/ie-css3/">Keith Clark &#8211; IE CSS3 pseudo-class selectors</a></del></p>
<p>IE8以下にcss3の擬似クラスを対応させるjsのバージョンが1.0になって名前と配布サイトが変わってた。<br />
<a href="http://selectivizr.com/">Selectivizr &#8211; CSS3 pseudo-class and attribute selectors for IE 6-8</a></p>
<p>ie-css3.js以外にjavascript libraryが必要、色々対応してるので好きなのを選んで使う。<br />
<a href="http://www.domassistant.com/">DOMAssistant 2.8.0</a>と併用すれば以下の擬似クラス全てに対応するようだ。</p>
<p><span class="note2">v0.9.5bで対応している擬似クラス</span><br />
<a href="http://www.keithclark.co.uk/labs/ie-css3/#supported-libaries">Supported JavaScript Libraries</a></p>
<ol style="-moz-column-count:2;-moz-column-gap:10px;-webkit-column-count:2;-webkit-column-gap:10px;">
<li>:nth-child</li>
<li>:nth-last-child</li>
<li>:nth-of-type</li>
<li>:nth-last-of-type</li>
<li>:first-child</li>
<li>:last-child</li>
<li>:only-child</li>
<li>:first-of-type</li>
<li>:last-of-type</li>
<li>:only-of-type</li>
<li>:empty</li>
<li>:enabled</li>
<li>:disabled</li>
<li>:checked</li>
<li>:hover</li>
<li>:focus</li>
<li>:target</li>
<li>::first-line</li>
<li>::first-letter</li>
</ol>
<p><a href="http://zng.info/specs/css3-selectors.html#structural-pseudos">選択子 / 6.6.5 構造上の擬似クラス</a>(日本語訳)</p>
<p><a href="http://sakurachiro.com/_exercise/html_css/css3-nth/">ie-css3.js動作確認サンプル</a><br />
確かにIEでも擬似クラスが有効になってるけど、&lt;pre&gt;のcssが無効になってる。使い方間違ってるのかな…<br />
でもどうやら@importから先のcssファイルを読み込んでくれてないみたいだ。</p>
<h3>書いてあった＞＜；；</h3>
<blockquote><p>A few things you should know:</p>
<p>    * Style sheets MUST be added to the page using a
<link> tag. You can still use @import in your style sheets. Page level style sheets won&#8217;t be parsed<br />
    * Style sheets MUST be hosted on the domain as the page.</link></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2010/04/ie-css3-js/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2010/04/ie-css3-js/" />
	</item>
		<item>
		<title>jQuery Masonryを使いたいんだけど</title>
		<link>http://blog.sakurachiro.com/2009/12/jquery-masonry/</link>
		<comments>http://blog.sakurachiro.com/2009/12/jquery-masonry/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 12:01:56 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/2009/12/jquery-masonry%e3%82%92%e4%bd%bf%e3%81%84%e3%81%9f%e3%81%84%e3%82%93%e3%81%a0%e3%81%91%e3%81%a9/</guid>
		<description><![CDATA[jQuery Masonryってのは、grid-a-liciousみたいにdivをタイルみたいに並べるやつ。 htmlのhead内で次の2ファイルを読み込んで 下のソースみたいのをbody内に書いて cssはこんな感じ。 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://desandro.com/demo/masonry/basic.html" class="broken_link">jQuery Masonry</a>ってのは、grid-a-liciousみたいにdivをタイルみたいに並べるやつ。<br />
<img src="http://blog.sakurachiro.com/wp-content/uploads/2009/12/20100502-1.gif" alt="jQuery Masonry demo" title="jQuery Masonry demo" width="480" height="296" class="alignnone size-full wp-image-1660" /></p>
<p>htmlのhead内で次の2ファイルを読み込んで</p>
<pre class="brush: xml; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery-1.3.2.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.masonry.js&quot;&gt;&lt;/script&gt;
</pre>
<p>下のソースみたいのをbody内に書いて</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;primary&quot;&gt;
&lt;div class=&quot;box&quot;&gt;ボックスボックスボックス&lt;/div&gt;
&lt;div class=&quot;box&quot;&gt;ボックスボックスボックスボックスボックスボックスボックスボックスボックスボックスボックスボックスボックスボックスボックス&lt;/div&gt;
&lt;div class=&quot;box&quot;&gt;ボックスボックスボックス&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>cssはこんな感じ。</p>
<pre class="brush: css; title: ; notranslate">
#primary {
	width:870px;
}
.box {
	width:200px;
	float:left;
	background:#f33;
	border-radius:5px;
	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
}
</pre>
<p>最後にBasic Examplesのページに書いてあったのを追加してみるけど。</p>
<pre class="brush: jscript; title: ; notranslate">
$('#primary').masonry({
    columnWidth: 100,
    itemSelector: '.box'
});
</pre>
<p>普通に.boxをfloatした時と同じ表示にしかならない。<br />
何を間違ってるんだろう(´；ω；`)ｳｳｯ…</p>
<h3>functionで囲んだら動いた。</h3>
<pre class="brush: jscript; title: ; notranslate">
$(function(){
 $('#primary').masonry({
    columnWidth: 100,
    itemSelector: '.box'
});
})
</pre>
<p>jQueryはそうやって使うのがデフォだから、わざわざexampleには記述されてない？<br />
わからん( ´･＿･｀) </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/12/jquery-masonry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/12/jquery-masonry/" />
	</item>
		<item>
		<title>毎朝俺の為に、width変えた時の縦横比を守ったheightを計算してくれないか。</title>
		<link>http://blog.sakurachiro.com/2009/11/width-height/</link>
		<comments>http://blog.sakurachiro.com/2009/11/width-height/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 01:57:39 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/2009/11/width%e5%a4%89%e3%81%88%e3%81%9f%e6%99%82%e3%81%ab%e7%b8%a6%e6%a8%aa%e6%af%94%e5%ae%88%e3%81%a3%e3%81%9fheight%e8%a8%88%e7%ae%97%e3%81%97%e3%81%a6%e3%81%8f%e3%82%8c%e3%81%aa%e3%81%84%e3%81%8b%e3%80%82/</guid>
		<description><![CDATA[一辺が固定の四角形のサイズ変更後の高さを計算させるform [2009年11月16日 11:59修正しました]一辺が固定の四角形のサイズ変更後の高さを計算させるformその2 こんなの電卓でちょちょいと計算すればすむのに [...]]]></description>
			<content:encoded><![CDATA[<p><del datetime="2009-11-16T03:59:21+00:00"><a href="http://sakurachiro.com/_exercise/javascript/height/">一辺が固定の四角形のサイズ変更後の高さを計算させるform</a></del></p>
<p>[2009年11月16日 11:59修正しました]<a href="http://sakurachiro.com/_exercise/javascript/height/index2.html">一辺が固定の四角形のサイズ変更後の高さを計算させるformその2</a><br />
こんなの電卓でちょちょいと計算すればすむのに、あほなので作った。</p>
<p>以下、なんでそんな事しかたという説明。</p>
<p><span id="more-1384"></span></p>
<p>このblogはgrungeというテーマを残してある為、<br />
コンテンツ本文部分のwidhtが400pxまでしか使えない縛りがあります(simpleは1カラムでwidth100%、dying-flowerはたぶん900pxのwidth76%)。</p>
<p>WordPress君は賢いので、400pxより大きい画像を挿入しても、横幅が400pxになるように縦横比を揃えてheightを計算してくれます。</p>
<p>けどyoutubeだと、これがうまくいかない。</p>
<p>先日の<a href="http://blog.sakurachiro.com/2009/11/photomovie/">写真で動画</a>というエントリーの時にyoutube貼ったけど<br />
[埋め込み]のurlを[カスタマイズ]できるんだけど、widthとheightは決めうちの中から選ぶ事になってるようで横幅400pxは無いんですよね、<br />
なので自分でheightを計算しなくちゃいけなくて面倒くさいなぁと思ったわけです。</p>
<p>面倒だからwidthだけ400pxに変更すれば大丈夫でしょうとして公開したら<br />
縦横比が変わるというか、Firefoxにswfのheightを入力しなかった時の初期値があるのか、二つとおも同じ高さになって<br />
それにあわせて動画の横幅(プレイヤーのではなく)が縮んで見えないよコレ！と。</p>
<p>たぶん式はこんな感じ(計算苦手なのでアバウトに)で修正してアップしたです。</p>
<pre class="brush: plain; title: ; notranslate">変更後の高さ = ( 希望の横幅 / 今の横幅 ) * 今の高さ ;</pre>
<h3><a href="http://sakurachiro.com/_exercise/javascript/height/index2.html">修正後</a>の手順</h3>
<p><strong>html</strong></p>
<pre class="brush: xml; title: ; notranslate">
&lt;form id=&quot;result&quot;&gt;
	&lt;dl&gt;
		&lt;dt&gt;&lt;label for=&quot;nowwidth&quot;&gt;元のwidth：&lt;/label&gt;&lt;/dt&gt;
		&lt;dd&gt;&lt;input name=&quot;nowwidth&quot; id=&quot;nowwidth&quot; type=&quot;text&quot; /&gt;&lt;/dd&gt;
		&lt;dt&gt;&lt;label for=&quot;nowheight&quot;&gt;元のheight：&lt;/label&gt;&lt;/dt&gt;
		&lt;dd&gt;&lt;input name=&quot;nowheight&quot; id=&quot;nowheight&quot; type=&quot;text&quot; /&gt;&lt;/dd&gt;
		&lt;dt&gt;&lt;label for=&quot;targetwidth&quot;&gt;目標のwidth：&lt;/label&gt;&lt;/dt&gt;
		&lt;dd&gt;&lt;input name=&quot;targetwidth&quot; id=&quot;targetwidth&quot; type=&quot;text&quot; /&gt;px&lt;/dd&gt;
	&lt;/dl&gt;

	&lt;p&gt;&lt;input type=&quot;button&quot; title=&quot;check&quot; id=&quot;check&quot; value=&quot;check&quot; /&gt;&lt;/p&gt;

	&lt;dl&gt;
		&lt;dt&gt;結果：&lt;/dt&gt;
		&lt;dd&gt;&lt;input type=&quot;text&quot; name=&quot;resultheight&quot; id=&quot;resultheight&quot; value=&quot;結果&quot; /&gt;&lt;/dd&gt;
	&lt;/dl&gt;
&lt;/form&gt;
</pre>
<p>jsのイベント削除した。<br />
formの中のソースが綺麗になった(cssもjsも外部化してないけど)。</p>
<p><strong>javascript</strong></p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
	window.onload=function(){
	document.getElementById(&quot;nowwidth&quot;).focus(); //ウィンドウを開いたら最初のinputをfocusさせておく
	document.getElementById(&quot;check&quot;).onfocus=checkheight; //checkボタン押したら計算開始
	document.getElementById(&quot;resultheight&quot;).onfocus=this.select; //結果のinputにfocusしたらテキストを選択
}

function checkheight(){
	res=document.getElementById(&quot;result&quot;); //入力の手間を省く
	nw=res.nowwidth;
	nh=res.nowheight;
	tw=res.targetwidth
	rh=res.resultheight;

	var nextheight=Math.floor((tw.value/nw.value)*nh.value); //小数点が返る事もあるのでMath.floorで切り捨てる
	rh.value='width=\&quot;'+tw.value+'\&quot; height=\&quot;'+nextheight+'\&quot;';
}
&lt;/script&gt;
</pre>
<p>focus();とonfocusの違いがよく判ってないです。<br />
bodyのonloadをwindow.onloadに変更するのと一緒みたいな感じにした。</p>
<p><strong>css(抜粋)</strong>これは前と一緒。</p>
<pre class="brush: css; title: ; notranslate">
input[type=&quot;text&quot;] {
	font-size:110%;
	padding:0.1em 0.2em;
	border:1px solid #999;
}
input[type=&quot;text&quot;]:focus {
	border:1px solid #6CC;
	background:#F7FDFF;
}

form dl{
	padding:1em;
	border:5px solid #999;
	border-radius:3px;
	-moz-border-radius: 3px;
}
form dt{
	padding:0.4em 0.5em;
	display:inline;/*最初のうち上のpaddingをmarginで指定して背景色を表示させてた名残、今は必要ない指定。*/
	width:7.5em;
	font-weight:bold;
	float:left;/*続くddを横に置く、floatを使わないければmargin-topにネガティブマージンを指定でもok？*/
}
form dd{
	padding:0.4em 0.5em;
	margin:0 0 0 7.5em;
}
</pre>
<h3><a href="http://sakurachiro.com/_exercise/javascript/height/">修正前</a>の手順</h3>
<p><strong>html</strong></p>
<pre class="brush: xml; title: ; notranslate">&lt;form id=&quot;result&quot;&gt;
	&lt;dl&gt;
		&lt;dt&gt;
			&lt;label for=&quot;nowwidth&quot;&gt;元のwidth：&lt;/label&gt;
		&lt;/dt&gt;
		&lt;dd&gt;
			&lt;input name=&quot;nowwidth&quot; id=&quot;nowwidth&quot; type=&quot;text&quot; /&gt;
		&lt;/dd&gt;
		&lt;dt&gt;
			&lt;label for=&quot;nowheight&quot;&gt;元のheight：&lt;/label&gt;
		&lt;/dt&gt;
		&lt;dd&gt;
			&lt;input name=&quot;nowheight&quot; id=&quot;nowheight&quot; type=&quot;text&quot; /&gt;
		&lt;/dd&gt;
		&lt;dt&gt;
			&lt;label for=&quot;targetwidth&quot;&gt;目標のwidth：&lt;/label&gt;
		&lt;/dt&gt;
		&lt;dd&gt;
			&lt;input name=&quot;targetwidth&quot; id=&quot;targetwidth&quot; type=&quot;text&quot; /&gt;
			px&lt;/dd&gt;
	&lt;/dl&gt;
	&lt;p&gt;
		&lt;input type=&quot;button&quot; title=&quot;check&quot; id=&quot;check&quot; value=&quot;check&quot; onclick=&quot;checkheight()&quot; onfocus=&quot;checkheight()&quot; /&gt;
	&lt;/p&gt;
	&lt;dl&gt;
		&lt;dt&gt;結果：&lt;/dt&gt;
		&lt;dd&gt;
			&lt;input type=&quot;text&quot; name=&quot;resultheight&quot; id=&quot;resultheight&quot; value=&quot;結果&quot; onfocus=&quot;this.select()&quot; /&gt;
		&lt;/dd&gt;
	&lt;/dl&gt;
&lt;/form&gt;
</pre>
<p>28行目：<span class="note2">onfocus=&#8221;this.select()</span>でフォーカスした時に勝手にテキストを選択するように。</p>
<p><strong>javascript</strong></p>
<pre class="brush: jscript; title: ; notranslate">&lt;script type=&quot;text/javascript&quot;&gt;
	window.onload=function(){
	document.getElementById('nowwidth').focus(); //ウィンドウを開いたら最初のinputをfocusさせておく
}
function checkheight(){
	res=document.getElementById(&quot;result&quot;);//入力の手間を省く
	nw=res.nowwidth;
	nh=res.nowheight;
	tw=res.targetwidth
	rh=res.resultheight;

	var nextheight=Math.floor((tw.value/nw.value)*nh.value);//小数点が返る事もあるのでMath.floorで切り捨てる
	rh.value='width=\&quot;'+tw.value+'\&quot; height=\&quot;'+nextheight+'\&quot;';
}
&lt;/script&gt;</pre>
<p>13行目：簡単にコピペできた方が楽なので、[width="xxx" height="yyy"]で吐き出すようにしておく。<br />
ダブルクォーテーションを表示させる方法がわからず検索したら<span class="note3">\&#8221;</span>ではなく<span class="note5">&amp;quot;</span>を使うと書いてあったんだけど、そうすると変数が展開されなかったのでごにょごにょしてたら結局<span class="note3">\&#8221;</span>でokだった。</p>
<p><strong>css(抜粋)</strong></p>
<pre class="brush: css; title: ; notranslate">
input[type=&quot;text&quot;] {
	font-size:110%;
	padding:0.1em 0.2em;
	border:1px solid #999;
}
input[type=&quot;text&quot;]:focus {
	border:1px solid #6CC;
	background:#F7FDFF;
}

form dl{
	padding:1em;
	border:5px solid #999;
	border-radius:3px;
	-moz-border-radius: 3px;
}
form dt{
	padding:0.4em 0.5em;
	display:inline;/*最初のうち上のpaddingをmarginで指定して背景色を表示させてた名残、今は必要ない指定。*/
	width:7.5em;
	font-weight:bold;
	float:left;/*続くddを横に置く、floatを使わないければmargin-topにネガティブマージンを指定でもok？*/
}
form dd{
	padding:0.4em 0.5em;
	margin:0 0 0 7.5em;
}
</pre>
<p>1～9行目：type属性がtextのinputに、今ここがフォーカスしてますよって印をつける。</p>
<p>11～27行目：form dl-ddまで<br />
昔流行ったdtとddを横並びにする指定。</p>
<p>widthとheightを続けて何回も書くとたまにwidhtになってしまよね。</p>
<h3>参考にしました</h3>
<p><a href="http://tenderfeel.xsrv.jp/javascript/68/">[JS]ページが開いたら自動でフォーカスを合わせる</a></p>
<p><a href="http://javascriptist.net/ref/element.select.html">element.select &#8211; input部品を選択状態にする</a></p>
<p><a href="http://yamadamemo.blog121.fc2.com/blog-entry-107.html">HTMLタグ内でのJavaScriptのダブルクォーテーション</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/11/width-height/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/11/width-height/" />
	</item>
		<item>
		<title>TEXTAREAをリサイズするjQueryのプラグイン</title>
		<link>http://blog.sakurachiro.com/2009/11/textarea-resizable-jquery/</link>
		<comments>http://blog.sakurachiro.com/2009/11/textarea-resizable-jquery/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 17:13:27 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[とりあえずメモ]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/2009/11/textarea%e3%82%92%e3%83%aa%e3%82%b5%e3%82%a4%e3%82%ba%e3%81%99%e3%82%8bjquery%e3%81%ae%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3/</guid>
		<description><![CDATA[こんなの jQuery TextAreaResizer plugin example ダウンロード先 TextArea Resizer 必要なjs読み込ませて リサイズの時つまむbarをcssで設定して textarea [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.sakurachiro.com/wp-content/uploads/2009/11/20091110-1.jpg" rel="shadowbox[sbpost-1351];player=img;" title="つまんで伸ばす"><img src="http://blog.sakurachiro.com/wp-content/uploads/2009/11/20091110-1-400x162.jpg" alt="つまんで伸ばす" title="つまんで伸ばす" width="400" height="162" class="alignnone size-large wp-image-1374" /></a></p>
<p>こんなの<br />
<a href="http://www.itsavesyou.com/TextArea_Resizer_example.htm">jQuery TextAreaResizer plugin example</a></p>
<p>ダウンロード先<br />
<a href="http://plugins.jquery.com/project/TextAreaResizer">TextArea Resizer</a><br />
必要なjs読み込ませて<br />
リサイズの時つまむbarをcssで設定して<br />
textareaにclass=&#8221;resizable&#8221;を追加</p>
<pre class="brush: xml; title: ; notranslate">
&lt;textarea class=&quot;resizable&quot;&gt;some test text
some test text
some test text
some test text
some test text
some test text
&lt;/textarea&gt;
</pre>
<p>つまんだときの透明度が低すぎてtextareaが見えないよって時は<br />
jquery.textarearesizer.compressed.jsかjquery.textarearesizer.jsどっちか使ってる方の</p>
<pre class="brush: jscript; title: ; notranslate">textarea.css('opacity',0.25)</pre>
<p>を適当に変更</p>
<p>プラグインの<a href="http://wordpress.org/extend/plugins/head-cleaner/">Head Cleaner</a>で<span class="note2">head 内の JavaScript を、フッタ領域に移動</span>あたりにチェックを入れてると使えないかも。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/11/textarea-resizable-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/11/textarea-resizable-jquery/" />
	</item>
		<item>
		<title>Fireworksのテクスチャー画像等をPhotoshopのパターンに一括登録したい。</title>
		<link>http://blog.sakurachiro.com/2009/11/add-pattern/</link>
		<comments>http://blog.sakurachiro.com/2009/11/add-pattern/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 21:55:20 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[jsx]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=1346</guid>
		<description><![CDATA[[追記 / 20100523] バッチ処理を使わないように改造したのを公開した。 大量のテクスチャー画像を、超簡単にパターン登録する.jsx ( バッチ処理不使用 photoshopで使っているパターン(テクスチャー)は [...]]]></description>
			<content:encoded><![CDATA[<p><em class="note2">[追記 / 20100523]</em><br />
バッチ処理を使わないように改造したのを公開した。<br />
<a href="http://blog.sakurachiro.com/2010/05/add-pattern-2/">大量のテクスチャー画像を、超簡単にパターン登録する.jsx ( バッチ処理不使用</a></p>
<p>photoshopで使っているパターン(テクスチャー)は、使いたい時に使いたい物を自作して即登録しているので今まで気にもしませんでしたが、<br />
例えば<a href="http://ja-jp.colourlovers.com/patterns/" title="adobe kulerようなサイトだったけどパターンもあったのね">COLOURlovers :: パターン</a>や<a href="http://ftg.projectdd.jp/" title="Fireworksで使えるテクスチャファイル300種類を無料で配布">Ftg &#8211; Fireworks texture gallery</a>のような素敵サイトから感謝の念をこめてダウンロードしたpng形式のテクスチャー画像を「これちょっとphotoshopでも使いたいのぅ」なんて思ったら<br />
1ファイル1ファイルphotoshopで開いて<span class="note2">[編集] &#8211; [パターンを定義]</span>しなきゃ駄目なんですね。<br />
プリセットマネージャーへドラッグアンドドロップすれば登録できるんだと思ってた。</p>
<p>1個2個ならいいけど300回繰り返すとなるとなると半端なく面倒臭い。<br />
面倒臭いとモチベーションダウンに繋がるしで良くない。<br />
ほいではどうしたら面倒臭くなくなるか？を考えるわけです。醍醐味です。</p>
<p><span id="more-1346"></span></p>
<h3>バッチ処理とアクションで自動化</h3>
<p>バッチ処理という機能を使えばフォルダ単位でアクションを自動化させられるそうだ、これは使わない手はない。</p>
<p>まずパターン登録のアクションを作成<br />
<img src="http://blog.sakurachiro.com/wp-content/uploads/2009/11/20091105-7.png" alt="アクション登録" title="アクション登録" width="400" height="200" class="alignnone size-full wp-image-1347" /></p>
<p>次にバッチ処理に登録<br />
<span class="note2">[ファイル] &#8211; [自動処理] &#8211; [バッチ]</span><br />
<a href="http://blog.sakurachiro.com/wp-content/uploads/2009/11/20091105-8.png" rel="shadowbox[sbpost-1346];player=img;" title="バッチ"><img src="http://blog.sakurachiro.com/wp-content/uploads/2009/11/20091105-8-400x283.png" alt="バッチ" title="バッチ" width="400" height="283" class="alignnone size-large wp-image-1348" /></a></p>
<p>プリセットマネージャーから確認すると全部登録されてた。<br />
<span class="note2">バッチ処理すごい！</span></p>
<p>しかし問題がひとつ。<br />
パターン名がすべて「check02.png」になってた。<br />
なんてこったい、アクションでパターンを登録する時に使った名前に上書きされていくという。<br />
パターン名を空白にするとアクションに登録できないし困った。<br />
気にしなければいんだけど、気になるのがおとめ座B型の性分か。</p>
<p>アクションでファイル名を参照させる方法もあるのかもしれないけど、全然わからなかったので別の方法を考えてみる事にする。</p>
<h3>スクリプトってやつを使ったらどうだろう？</h3>
<p>バッチ処理を検索すると、アクションとセットで登場するスクリプトというのがある。<br />
これでどうにかならんかね？と<a href="http://blog.sakurachiro.com/2009/11/jsx-memo/">調べてみた結果が前回のエントリー</a>なわけです。</p>
<p>ScriptingListenerJS.logが吐き出すソースを<del datetime="2009-11-05T21:41:16+00:00">パク</del>参考に以下の.jsxを作成</p>
<pre class="brush: jscript; title: ; notranslate">
// ==========
// 登録する
// ==========
var idMk = charIDToTypeID( &quot;Mk  &quot; );
    var desc1 = new ActionDescriptor();
    var idNull = charIDToTypeID( &quot;null&quot; );
        var ref1 = new ActionReference();
        var myPtrn = charIDToTypeID( &quot;Ptrn&quot; );
        ref1.putClass( myPtrn );
    desc1.putReference( idNull, ref1 );
    var idUsng = charIDToTypeID( &quot;Usng&quot; );
        var ref2 = new ActionReference();
        var idPrpr = charIDToTypeID( &quot;Prpr&quot; );
        var idFsel = charIDToTypeID( &quot;fsel&quot; );
        ref2.putProperty( idPrpr, idFsel );
        var idDcmn = charIDToTypeID( &quot;Dcmn&quot; );
        var idOrdn = charIDToTypeID( &quot;Ordn&quot; );
        var idTrgt = charIDToTypeID( &quot;Trgt&quot; );
        ref2.putEnumerated( idDcmn, idOrdn, idTrgt );
    desc1.putReference( idUsng, ref2 );
    var idNm = charIDToTypeID( &quot;Nm  &quot; );
    var docName = app.activeDocument.name;
    desc1.putString( idNm, docName );
executeAction( idMk, desc1, DialogModes.NO );

// ==========
// 閉じる
// ==========
var idCls = charIDToTypeID( &quot;Cls &quot; );
executeAction( idCls, undefined, DialogModes.NO );
</pre>
<p>どうもバッチから直接.jsxを呼べないようなので<br />
それをアクションに登録<br />
<img src="http://blog.sakurachiro.com/wp-content/uploads/2009/11/20091105-10.png" alt="閉じる処理はjsxの中に記述。" title="閉じる処理はjsxの中に記述。" width="400" height="200" class="alignnone size-full wp-image-1349" /></p>
<p>本当はjsxにバッチ側が受け持つ「指定フォルダにファイルがあったら開く」処理を書ければいいのだろうけど、まだわからないので仕方がない。</p>
<h3>実行結果</h3>
<p><a href="http://blog.sakurachiro.com/wp-content/uploads/2009/11/20091105-9.png" rel="shadowbox[sbpost-1346];player=img;" title="パターン名がファイル名になった。"><img src="http://blog.sakurachiro.com/wp-content/uploads/2009/11/20091105-9-400x391.png" alt="パターン名がファイル名になった。" title="パターン名がファイル名になった。" width="400" height="391" class="alignnone size-large wp-image-1350" /></a></p>
<h3>ご自由にどうぞ</h3>
<p><a href="http://sakurachiro.com/_exercise/javascript/jsx/add-Pattern.jsx">add-Pattern.jsx｜画像をファイル名でパターンに追加する.jsx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/11/add-pattern/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/11/add-pattern/" />
	</item>
		<item>
		<title>.jsx(アクションより融通が利くであろうスクリプト)作成メモ / Photoshop CS3</title>
		<link>http://blog.sakurachiro.com/2009/11/jsx-memo/</link>
		<comments>http://blog.sakurachiro.com/2009/11/jsx-memo/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 20:06:05 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[jsx]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=1345</guid>
		<description><![CDATA[まず何をどうするのか？それすらわからない。 ガイドに目を通す。 Program Files\Adobe\Adobe Photoshop CS3\以下あたりにあるフォルダ スクリプティングガイド\Photoshop CS3 [...]]]></description>
			<content:encoded><![CDATA[<h3>まず何をどうするのか？それすらわからない。</h3>
<p>ガイドに目を通す。<br />
Program Files\Adobe\Adobe Photoshop CS3\以下あたりにあるフォルダ</p>
<ul>
<li>スクリプティングガイド\Photoshop CS3 Scripting Guide-J.pdf / 日本語</li>
<li>スクリプティングガイド\Photoshop CS3 JavaScript Ref.pdf / 英語</li>
</ul>
<p>肝心な方が英語＞＜</p>
<h3>Fireworksの「手順をコマンドとして保存」のような機能を追加。</h3>
<p><span class="note2">スクリプティングガイド\ユーティリティ\ScriptListener.8li</span> を<br />
<span class="note2">プラグイン\自動処理</span>に複製</p>
<p>デスクトップに<em>ScriptingListenerJS.log</em>が作成される。。</p>
<p><em class="note3">[追記 / 20100428]</em><br />
ほっといたら.logファイルの容量がすごいことになってた。<br />
定期的に削除するか、.logが必要無いときはScriptListener.8liを削除したほうがいいかも。</p>
<p><a href="http://blog.sakurachiro.com/wp-content/uploads/2009/11/20100428-1.png" rel="shadowbox[sbpost-1345];player=img;" title="ScriptingListenerJS.logのプロパティ"><img src="http://blog.sakurachiro.com/wp-content/uploads/2009/11/20100428-1.png" alt="ScriptingListenerJS.logのプロパティ" title="ScriptingListenerJS.logのプロパティ" width="425" height="467" class="alignnone size-full wp-image-1632" /></a></p>
<h3>保存場所</h3>
<p>プリセット\スクリプト内に置けば[ファイル] &#8211; [スクリプト]に表示される(と思う)</p>
<h3>参考にさせていただきました。</h3>
<p><a href="http://www016.upp.so-net.ne.jp/sorakaze/script/intro_CS.html">そらかぜ工場 Photoshop Scripting 覚書き</a></p>
<p><a href="http://www.openspc2.org/book/PhotoshopCS3/">Adobe Photoshop CS3自動化作戦</a></p>
<blockquote cite=http://www.openspc2.org/book/PhotoshopCS3/"><p>スクリプト内に日本語を含む場合にはUTF-8 (Unicode)の文字コード (できればBOM (Byte Order Mark)付き)にする必要があります。</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/11/jsx-memo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/11/jsx-memo/" />
	</item>
		<item>
		<title>element.insertBeforeとelement.appendChild</title>
		<link>http://blog.sakurachiro.com/2009/10/element-insertbefore%e3%81%a8element-appendchild/</link>
		<comments>http://blog.sakurachiro.com/2009/10/element-insertbefore%e3%81%a8element-appendchild/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 02:04:45 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[とりあえずメモ]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=1296</guid>
		<description><![CDATA[こっちもまだメモ 要素を追加する element.appendChild(newNode) elementにnewNodeを追加する？ js html output element.insertBefore() js o [...]]]></description>
			<content:encoded><![CDATA[<p>こっちもまだメモ</p>
<p>要素を追加する</p>
<h3 class="note5">element.appendChild(newNode)</h3>
<p>elementにnewNodeを追加する？</p>
<p>js</p>
<pre class="brush: jscript; title: ; notranslate">
window.onload=function(){
elm=document.getElementById(&quot;elm&quot;);
kakiku=document.createTextNode(&quot;&gt;kakikukeko&quot;);
elm.appendChild(kakiku);
}
</pre>
<p>html</p>
<pre class="brush: xml; title: ; notranslate">
&lt;p id=&quot;elm&quot;&gt;aiueo&lt;/p&gt;
</pre>
<p>output</p>
<pre class="brush: plain; title: ; notranslate">aiueo&gt;kakikukeko
</pre>
<h3 class="note5">element.insertBefore()</h3>
<p>js</p>
<pre class="brush: jscript; title: ; notranslate">sasisu=document.createTextNode(&quot;sasisuseso&gt;&quot;);
elm.insertBefore(sasisu,elm.firstChild);</pre>
<p>output</p>
<pre class="brush: plain; title: ; notranslate">sasisuseso&gt;aiueo
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/10/element-insertbefore%e3%81%a8element-appendchild/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/10/element-insertbefore%e3%81%a8element-appendchild/" />
	</item>
		<item>
		<title>setAttributeとassignment to undeclared variable ～</title>
		<link>http://blog.sakurachiro.com/2009/10/setattribute-etc/</link>
		<comments>http://blog.sakurachiro.com/2009/10/setattribute-etc/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 22:27:30 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[とりあえずメモ]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/2009/10/javascript%e3%81%a1%e3%82%87%e3%81%a3%e3%81%a8%e3%83%a1%e3%83%a2/</guid>
		<description><![CDATA[まだメモ var imgNode=document.createElement("img"); imgNode.setAttribute("src", imgURL); imgNode.style.opacity=0.2 [...]]]></description>
			<content:encoded><![CDATA[<p>まだメモ</p>
<pre><code>var imgNode=document.createElement("img");
<span class="note2">imgNode.setAttribute("src", imgURL);</span>
<span class="note3">imgNode.style.opacity=0.2;</span>
var targetNode=document.getElementById("wrap");
targetNode.insertBefore(imgNode,targetNode.firstChild);
</code></pre>
<p>&lt;img <span class="note2">src=&#8221;xxx.gif&#8221;</span> <span class="note3">style=&#8221;opacity: 0.2;&#8221;</span> /&gt;</p>
<p>setAttributeはどうも曲者らしい<br />
setAttributeが曲者じゃなくてIEが曲者か。<br />
IEではclassとstyleとイベントを設定できないそうだ。<br />
便利っぽいのにな残念。</p>
<h3>Firefoxの警告</h3>
<dl>
<dt><strong class="note5">assignment to undeclared variable ～</strong></dt>
<dd>varが無いよ</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/10/setattribute-etc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/10/setattribute-etc/" />
	</item>
		<item>
		<title>mozilla-JavaScript-style-guide</title>
		<link>http://blog.sakurachiro.com/2009/10/mozilla-javascript-style-guide/</link>
		<comments>http://blog.sakurachiro.com/2009/10/mozilla-javascript-style-guide/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 19:04:37 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[とりあえずメモ]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=1240</guid>
		<description><![CDATA[mozilla developercenter｜JavaScript style guide ホワイトスペース * 基本的なインデントはスペース 2 つです。タブを使ってはいけません。 どっかほかのところでもインデントは [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://developer.mozilla.org/ja/JavaScript_style_guide">mozilla developercenter｜JavaScript style guide</a></p>
<blockquote cite="https://developer.mozilla.org/ja/JavaScript_style_guide"><p> ホワイトスペース</p>
<p>    * 基本的なインデントはスペース 2 つです。タブを使ってはいけません。
 </p></blockquote>
<p>どっかほかのところでもインデントはタブじゃなくてスペース2つって書いてあったなぁ<br />
うちは今TABを使っている。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/10/mozilla-javascript-style-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/10/mozilla-javascript-style-guide/" />
	</item>
		<item>
		<title>ヘッダーの背景画像をランダムに表示させたくなって知恵を絞る、の巻</title>
		<link>http://blog.sakurachiro.com/2009/10/header-bgimage-random/</link>
		<comments>http://blog.sakurachiro.com/2009/10/header-bgimage-random/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 18:29:02 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[さくらちろ]]></category>
		<category><![CDATA[ランダム]]></category>
		<category><![CDATA[画像]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=1214</guid>
		<description><![CDATA[先日追加したテンプレート（x-ran-zatsu）のヘッダー画像が何パターンかあるので せっかくだから全部使ってしまおうと ランダムで背景画像を表示するjavascriptを追加してみたら、これがうまくいかない。 うまく [...]]]></description>
			<content:encoded><![CDATA[<p>先日追加したテンプレート（x-ran-zatsu）のヘッダー画像が何パターンかあるので<br />
せっかくだから全部使ってしまおうと<br />
ランダムで背景画像を表示するjavascriptを追加してみたら、これがうまくいかない。</p>
<p>うまくいかないといっても、htmlに使えば動くんだけど、wordpress（php）で読み込むと画像が消えてしまう。</p>
<p>これがその時書いたjavascriptで<br />
読み込んだ時のミリ秒が奇数か偶数かで分岐させて、#headerの背景を差し替える。<br />
phpで使う場合jsの読み込ませる場所が違うのかな？</p>
<pre class="brush: jscript; title: ; notranslate">
window.onload=function(){
	headsw();
}

function headsw(){
var dt = new Date();
ms=dt.getMilliseconds();
//console.log(&quot;ms:&quot;+ms);
if(ms%2==0){
document.getElementById(&quot;header&quot;).style.backgroundImage=&quot;url(img/common/header.jpg)&quot;

}else{
document.getElementById('header').style.backgroundImage='url(img/common/header-2.jpg)'
}
}
</pre>
<p>関係ないけどキーボードの調子がすこぶる悪い。<br />
文字側のenter（テンキー側のは反応する）やc,v,F7あたりが反応したり、しなかったり、延々と一文字が入力され続けたり。</p>
<p>さて、粘ってみたけど、うまい解決法も閃かないので別の方法を考える事にした。<br />
せっかくwordpressでphpを使っているのだから、phpで出来ないかね？と辞書を片手にシコシコ書いてみたら、とりあえず動くだけというものだけど、出来たので手順を晒してみます。</p>
<p><span id="more-1214"></span></p>
<h3>まず画像を表示させてみる</h3>
<p>test-sw.phpという名前のファイルを作成して以下を記述</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
header('Content-Type: image/jpeg');
readfile(&quot;img/common/header-2.jpg&quot;);
?&gt;
</pre>
<p>やった、localhostから確認するとheader-2.jpgが表示された。</p>
<p>次にこのphpをcssに読み込ませてみる。<br />
<span class="note3">css/test-css.css</span></p>
<pre class="brush: css; title: ; notranslate">
#header{
	background:url(../test-sw.php) no-repeat;
	border:1px solid #f33;
	height:400px;
	width:400px;
}
</pre>
<p>test表示用のphpを作ってtest-css.cssを読み込ませる。<br />
<span class="note3">test-oya.php</span></p>
<pre class="brush: php; title: ; notranslate">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;test&lt;/title&gt;

&lt;link href=&quot;css/test-css.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;div id=&quot;header&quot;&gt;head&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>やった、#headerの背景にheader-2.jpgが表示された。</p>
<p>背景画像を表示させる事は出来たので<br />
次は、画像の選び方を考える。</p>
<p>ランダムに切り替えたい背景画像だけを集めたフォルダを作って、そのフォルダ内にある画像を配列に入れられないか？<br />
これが出来れば、いちいちtest-sw.phpを変更する必要がなくて、背景画像を集めたフォルダに画像をぶっこめば済むようになる。</p>
<p>辞書を引くと、opendir()とreadfir()でディレクトリ操作ができるそうだ。<br />
<span class="note3">test-sw.phpに追加</span></p>
<pre class="brush: php; title: ; notranslate">
$dn=opendir(img/header);
while($file=readdir($dn)){
	echo &quot;ファイル名：$file&lt;br&gt;&quot;;
}
closedir($dn);
</pre>
<p><span class="note3">出力結果例</span></p>
<pre class="brush: plain; title: ; notranslate">
ファイル名：.
ファイル名：..
ファイル名：header-2.jpg
ファイル名：header-3.jpg
ファイル名：header-4.jpg
ファイル名：header-5.jpg
ファイル名：header-6.jpg
ファイル名：header.jpg
</pre>
<p>ん？<br />
ファイル名：.<br />
ファイル名：..<br />
？<br />
なんだこれ。</p>
<p>よくわからないのであとで調べるとして今はif文で弾いとく、<br />
ついでにマジックナンバー的なフォルダ階層を潰して、抜き出したファイル名を配列に入れる。</p>
<p><span class="note3">test-sw.phpを変更</span></p>
<pre class="brush: php; title: ; notranslate">
$headimgdir='img/header';

$dn=opendir($headimgdir);
while($file=readdir($dn)){
	if($file!='.' &amp;&amp; $file!='..'){
		$files[]=$file;
	}
}
closedir($dn);
</pre>
<p>これで画像が入った配列が完成。<br />
ここからランダムにピックアップさせる方法を調べる。</p>
<p>php4～で「array_rand(配列);」というものがあった、配列のインデックスをランダムに取得できるらしい。<br />
これを使ってみる。<br />
<span class="note3">test-sw.phpを変更</span></p>
<pre class="brush: php; title: ; notranslate">
$imgnum= array_rand($files);
$imgpath=$files[$imgnum];
header('Content-Type: image/jpeg');
readfile($headimgdir.'/'.$imgpath);
</pre>
<p>readfileはフォルダ階層と配列からの値に変更。</p>
<h3>最終的なtest-sw.php</h3>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$headimgdir='img/header';

$dn=opendir($headimgdir);
while($file=readdir($dn)){
	if($file!='.' &amp;&amp; $file!='..'){
		$files[]=$file;
	}
}
closedir($dn);

$imgnum= array_rand($files);
$imgpath=$files[$imgnum];
header('Content-Type: image/jpeg');
readfile($headimgdir.'/'.$imgpath);

?&gt;
</pre>
<p>完成。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/10/header-bgimage-random/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/10/header-bgimage-random/" />
	</item>
		<item>
		<title>CKEditorの画像アップロードを有効にする</title>
		<link>http://blog.sakurachiro.com/2009/09/ckeditor-v3-test/</link>
		<comments>http://blog.sakurachiro.com/2009/09/ckeditor-v3-test/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 11:15:16 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[とりあえずメモ]]></category>
		<category><![CDATA[CKEditor]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=1000</guid>
		<description><![CDATA[CKEditor｜demo 多機能過ぎるCKEditorですが、ダウンロードしただけだとアップロード機能が有効になってない。 それを有効にするには？って話です。 ckfinderてのも必要です。 ダウンロードはこちらから [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ckeditor.com/demo">CKEditor｜demo</a></p>
<p>多機能過ぎるCKEditorですが、ダウンロードしただけだとアップロード機能が有効になってない。<br />
それを有効にするには？って話です。</p>
<p><span id="more-1000"></span></p>
<p>ckfinderてのも必要です。</p>
<p>ダウンロードはこちらから<br />
<a href="http://ckeditor.com/download">ckeditor</a><br />
<a href="http://ckfinder.com/download">ckfinder</a></p>
<p><a href="http://docs.fckeditor.net/CKEditor_3.x/Developers_Guide/File_Browser_%28Uploader%29">ファイルブラウザ/アップローダについて（英語）</a></p>
<pre class="brush: plain; title: ; notranslate">ckfinder\_samples\js\ckeditor.html</pre>
<p>を参考にしろと書いてあるようなので参考にしたものを以下のページにアップしました。</p>
<p><strong>下準備</strong><br />
ckfinderのconfig.php<br />
32行目近辺の return false;を<span class="note2">true</span>に<br />
55行目近辺の <span class="note2">$baseUrl = &#8216;/ckfinder/userfiles/&#8217;;</span>お好みで</p>
<p>アップロード先のフォルダは<span class="note2">ckfinder/ckfinder.js</span>の中で指定してるようなので<br />
.htmlみたいな言葉で検索してurlのところを変更</p>
<p><a href="http://sakurachiro.com/_exercise/javascript/cke/">http://sakurachiro.com/_exercise/javascript/cke/</a></p>
<h3>CKEditor For WordPress</h3>
<p>WordPressのプラグインが出てた。<br />
<a href="http://wordpress.org/extend/plugins/ckeditor-for-wordpress/">http://wordpress.org/extend/plugins/ckeditor-for-wordpress/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/09/ckeditor-v3-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/09/ckeditor-v3-test/" />
	</item>
		<item>
		<title>JavaScriptでブラウザのレンダリングモードを調べる方法</title>
		<link>http://blog.sakurachiro.com/2009/09/javascript%e3%83%a1%e3%83%a2/</link>
		<comments>http://blog.sakurachiro.com/2009/09/javascript%e3%83%a1%e3%83%a2/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 20:05:31 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[とりあえずメモ]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=871</guid>
		<description><![CDATA[アドレスバーにコピペしてエンター レンダリングモードを調べる 標準準拠なら[CSS1Compat]？ 後方互換なら[BackCompat] IE8は3つのレンダリングモードがある IE8 //8 これがデフォルト IE7 [...]]]></description>
			<content:encoded><![CDATA[<p>アドレスバーにコピペしてエンター</p>
<p><strong>レンダリングモードを調べる</strong></p>
<pre class="brush: jscript; title: ; notranslate">javascript:alert(document.compatMode)</pre>
<p>標準準拠なら[CSS1Compat]？<br />
後方互換なら[BackCompat]</p>
<p>IE8は3つのレンダリングモードがある</p>
<pre class="brush: jscript; title: ; notranslate">javascript:alert(document.documentMode)</pre>
<p>IE8 //8 これがデフォルト<br />
IE7互換 //7<br />
後方互換 //5</p>
<p>確認用</p>
<ul>
<li><a href="http://sakurachiro.com/_exercise/html_css/rendering/html5.html">HTML5</a></li>
<li><a href="http://sakurachiro.com/_exercise/html_css/rendering/xhtml1transitional-xml.html">xhtml1.0 transitional xml宣言あり</a></li>
<li><a href="http://sakurachiro.com/_exercise/html_css/rendering/xhtml1transitional.html">xhtml1.0 transitional xml宣言なし</a></li>
</ul>
<p>関係ないけど<strong>更新された時間を調べる</strong></p>
<pre class="brush: jscript; title: ; notranslate">javascript:alert(document.lastModified)</pre>
<p>ブラウザやサーバーによって動作はマチマチらしい</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/09/javascript%e3%83%a1%e3%83%a2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/09/javascript%e3%83%a1%e3%83%a2/" />
	</item>
		<item>
		<title>ロールオーバーでimgをフェード</title>
		<link>http://blog.sakurachiro.com/2009/09/%e3%83%ad%e3%83%bc%e3%83%ab%e3%82%aa%e3%83%bc%e3%83%90%e3%83%bc%e3%81%a7img%e3%82%92%e3%83%95%e3%82%a7%e3%83%bc%e3%83%89/</link>
		<comments>http://blog.sakurachiro.com/2009/09/%e3%83%ad%e3%83%bc%e3%83%ab%e3%82%aa%e3%83%bc%e3%83%90%e3%83%bc%e3%81%a7img%e3%82%92%e3%83%95%e3%82%a7%e3%83%bc%e3%83%89/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 04:55:18 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=838</guid>
		<description><![CDATA[またもや前回の続き 次は、現在1個のidにしか対応してないので、対象の要素（とりあえずa？）が複数あれば勝手に全部対応できるようにさせる。 特定のid内のaに包まれたimgを対象にopacityを変化させるようにしてみた [...]]]></description>
			<content:encoded><![CDATA[<p>またもや<a href="http://blog.sakurachiro.com/2009/09/setinterval%E3%81%A8settimeout/">前回</a>の続き</p>
<blockquote><p>次は、現在1個のidにしか対応してないので、対象の要素（とりあえずa？）が複数あれば勝手に全部対応できるようにさせる。
</p></blockquote>
<p>特定のid内のaに包まれたimgを対象にopacityを変化させるようにしてみた。<br />
<a href="http://sakurachiro.com/_exercise/javascript/timer/setTimeout_opacity_3.html">動作確認はこちら。</a></p>
<p>javascriptはcssと違って「子 > 親」を指定できるみたい、便利だ。</p>
<pre class="brush: jscript; title: ; notranslate">
_contentWrap=document.getElementById(&quot;content&quot;);
_img=_contentWrap.getElementsByTagName(&quot;img&quot;);
for(var i=0;i&lt;_img.length;i++){
if(_img[i].parentNode.tagName==&quot;A&quot;){
//親要素がaタグだった場合の処理
//小文字のaにすると見つけられないようでした。
}
}
</pre>
<p>一応当初の目的は達成したけれど、次は、<br />
別の画像を前面にalpha0で呼び出してからalphaを100に変更させるか、<br />
背面に呼び出して前面の画像のalpha0に変更させるか、してクロスオーバーするマウスオーバーが出来たらいいなぁ</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/09/%e3%83%ad%e3%83%bc%e3%83%ab%e3%82%aa%e3%83%bc%e3%83%90%e3%83%bc%e3%81%a7img%e3%82%92%e3%83%95%e3%82%a7%e3%83%bc%e3%83%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/09/%e3%83%ad%e3%83%bc%e3%83%ab%e3%82%aa%e3%83%bc%e3%83%90%e3%83%bc%e3%81%a7img%e3%82%92%e3%83%95%e3%82%a7%e3%83%bc%e3%83%89/" />
	</item>
		<item>
		<title>setIntervalからsetTimeoutへ</title>
		<link>http://blog.sakurachiro.com/2009/09/setinterval%e3%81%a8settimeout/</link>
		<comments>http://blog.sakurachiro.com/2009/09/setinterval%e3%81%a8settimeout/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 21:26:22 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[とりあえずメモ]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=820</guid>
		<description><![CDATA[何から書こうかな まず前回の続き 1.setIntervalで、イベントをonclickからonmouseover,onmouseoutに変更、等速から等加速運動に変更 http://sakurachiro.com/_e [...]]]></description>
			<content:encoded><![CDATA[<p>何から書こうかな</p>
<p>まず<a href="http://blog.sakurachiro.com/2009/09/setinterval%E3%81%A8clearinterval/">前回</a>の続き</p>
<p>1.setIntervalで、イベントをonclickからonmouseover,onmouseoutに変更、等速から等加速運動に変更<br />
<a href="http://sakurachiro.com/_exercise/javascript/timer/setInterval_opacity_1.html">http://sakurachiro.com/_exercise/javascript/timer/setInterval_opacity_1.html</a></p>
<p>setIntervalで呼び出す関数に引数を持たせたら動かない<br />
これだとダメ</p>
<pre class="brush: jscript; title: ; notranslate">
aID1=window.setInterval(alphaSet1(minA),reftime);
</pre>
<p>functionで呼び出したらok</p>
<pre class="brush: jscript; title: ; notranslate">
aID1=window.setInterval(function(){
	alphaSet1(minA);
	},reftime);
</pre>
<p>引数はこれで解決したものの<br />
setIntervalが同時に何個も呼ばれてしまい失敗。</p>
<p>2.上記に関数が動いてるかのチェックを追加<br />
<a href="http://sakurachiro.com/_exercise/javascript/timer/setInterval_opacity_2.html">http://sakurachiro.com/_exercise/javascript/timer/setInterval_opacity_2.html</a></p>
<p>3.行き詰ったのでsetTimeoutを勉強してみる<br />
<a href="http://sakurachiro.com/_exercise/javascript/timer/setTimeout_opacity_1.html">http://sakurachiro.com/_exercise/javascript/timer/setTimeout_opacity_1.html</a></p>
<p>と、こんな感じまできた<br />
次は、現在1個のidにしか対応してないので、対象の要素（とりあえずa？）が複数あれば勝手に全部対応できるようにさせる。</p>
<p>肝心のopacityは<br />
<a href="http://jigsaw.w3.org/css-validator/#validate_by_input">CSS Validation Service｜テキストエリアに直接入力して検証</a>によると</p>
<blockquote><p>プロパティ opacity は CSS レベル 2.1 に存在しませんが、[css3] に存在します</p></blockquote>
<p>なんだけど、IE以外のブラウザ、opera/google chrome/safari/Firefox なんかはすでにopacityに対応してる。<br />
IEは独自拡張のfilterをつかって対応</p>
<pre class="brush: xml; title: ; notranslate">filter:alpha(opacity=20); </pre>
<p>その場合<span class="note2">hasLayoutをtrue</span>にしておく必要があるみたい（clearfixみたいに<span class="note2">zoom:1</span>が影響がない？）<br />
しかし独自拡張かぁ。<br />
CSS3も先行実装なんだけど、いつか実装された時に修正なしで使えるのがいいおね。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/09/setinterval%e3%81%a8settimeout/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/09/setinterval%e3%81%a8settimeout/" />
	</item>
		<item>
		<title>.onmouseover=function()での恥ずかしい勘違い</title>
		<link>http://blog.sakurachiro.com/2009/09/onmouseoverfunction%e3%81%a7%e3%81%ae%e6%81%a5%e3%81%9a%e3%81%8b%e3%81%97%e3%81%84%e5%8b%98%e9%81%95%e3%81%84/</link>
		<comments>http://blog.sakurachiro.com/2009/09/onmouseoverfunction%e3%81%a7%e3%81%ae%e6%81%a5%e3%81%9a%e3%81%8b%e3%81%97%e3%81%84%e5%8b%98%e9%81%95%e3%81%84/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 12:46:21 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=690</guid>
		<description><![CDATA[[追記 / 20100427] うわー、&#60;script&#62;や&#60;head&#62;を文字参照にしてなかったから途中から表示されてなかった。 id=&#8221;btn&#8221;な要素があるとして &#60; [...]]]></description>
			<content:encoded><![CDATA[<p><em class="note2">[追記 / 20100427]</em><br />
うわー、&lt;script&gt;や&lt;head&gt;を文字参照にしてなかったから途中から表示されてなかった。</p>
<p>id=&#8221;btn&#8221;な要素があるとして<br />
&lt;head&gt;内に以下のjsを書くか読み込む</p>
<p>1）こちらの記述は動いて</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
window.onload=function(){
	document.getElementById(&quot;btn&quot;).onmouseover=function(){
		alert(&quot;mouseover&quot;);
	}
}
&lt;/script&gt;
</pre>
<p>2）こっちだと動かない</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
document.getElementById(&quot;btn&quot;).onmouseover=function(){
	alert(&quot;mouseover&quot;);
}
&lt;/script&gt;
</pre>
<p>なぜだ～</p>
<p><span id="more-690"></span><br />
.onmouseover=function()ってあれでしょ<br />
as的な解釈だとマウスオーバー時に{}内の処理をすんでしょ？<br />
こんな感じ</p>
<pre class="brush: jscript; title: ; notranslate">
onmouseover=function(){
マウスオーバー時の処理
}
</pre>
<p>なんで反応しないんだろう？<br />
もしかしてjavascriptってヤツは、window.以下のイベント内にすべての処理を書かないといけないのか！？（偏見です）<br />
いやいやそれはないですね、docment.writeは&lt;script&gt;直下に書いても使えるものね。</p>
<p>検索してもhtmlのタグに
<pre class="brush: xml; title: ; notranslate">&lt;td mouseover=&quot;関数名(this)&quot;&gt;&lt;/td&gt;</pre>
<p>みたいなちょっと古そう？<sup>(*1)</sup>なサンプルとか<br />
onload=function(){}の中にあるサンプル（1のようなもの）しか見つからなかった</p>
<p>恥ずかしいけど教えてgooで質問でもしてみようかな&#8230;と、質問文を書いてる途中でなぜか閃いた</p>
<p>&lt;script&gt;直下から呼び出される時、「id=&#8221;btn&#8221;な要素」はまだ存在していないのでは？<br />
だから「undefinedかnullみたいなもん.onmouseover=function(){}」は処理できないのか！？</p>
<p>そして<br />
2）をの直前に移動したら動いたです＞＜<br />
1）が動くのは<br />
.onloadはhtmlの読み込みが終わった時に呼び出されるイベントなので<br />
onmouseover=function(){}を定義するときid=&#8221;btn&#8221;な要素は存在してます。</p>
<p>*1<br />
まだjavascriptの事よくわからない人間のになぜそう思うのかというと、jsをcssと同じようなものだと考えたから（htmlと分離した方がよかったり、Web標準があったり）。<br />
cssをhtmlタグの中にstyle=&#8221;xxx:yyy;&#8221;で書くサンプルを載せてるサイトは、往々にして理解の浅いものであったり、今じゃもう使わない古い時代のcssの使い方だったりあてにならない。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/09/onmouseoverfunction%e3%81%a7%e3%81%ae%e6%81%a5%e3%81%9a%e3%81%8b%e3%81%97%e3%81%84%e5%8b%98%e9%81%95%e3%81%84/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/09/onmouseoverfunction%e3%81%a7%e3%81%ae%e6%81%a5%e3%81%9a%e3%81%8b%e3%81%97%e3%81%84%e5%8b%98%e9%81%95%e3%81%84/" />
	</item>
		<item>
		<title>setIntervalとclearInterval</title>
		<link>http://blog.sakurachiro.com/2009/09/setinterval%e3%81%a8clearinterval/</link>
		<comments>http://blog.sakurachiro.com/2009/09/setinterval%e3%81%a8clearinterval/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 21:48:44 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=675</guid>
		<description><![CDATA[WordPressの「ページ」を使って試しに何かを作ってみようとポートフォリオ的な何かを作った。 で、ぼんやり眺めていたら「ロールオーバーを滑らかにしたいな」と思ってしまった。 flashで言ったら、onrollover [...]]]></description>
			<content:encoded><![CDATA[<p>WordPressの「ページ」を使って試しに何かを作ってみようと<a href="http://blog.sakurachiro.com/portfolio/">ポートフォリオ的な何か</a>を作った。</p>
<p>で、ぼんやり眺めていたら「ロールオーバーを滑らかにしたいな」と思ってしまった。</p>
<p>flashで言ったら、onrollover・out時にalphaをenterframeで減速処理とかかましたりするfunction作ってしまえばいいんだろうけど<br />
javascriptでenterframeってなんだろう？</p>
<p>ライブラリを使えば簡単に実装できてしまうのだろうけど（幻想？）<br />
せっかくだから最初はライブラリなしでやった方がいいだろう。</p>
<p>関係ないけど、こんなふう（もしくはいままでの記事の様）に物語風に書くと、後で読み返す時必要な情報にすぐアクセスしづらいかな、やっぱり。<br />
箇条書きまではいかなくても「目的、現在の状態、目標（試行錯誤、これがいらない？）、方法・結果」みたいな部分をピックアップして書いていったほうがいいのかな。</p>
<p>調べてみたところjavascriptだと、どうやら setInterval を使うようだ。<br />
どのブラウザでも使えるものなのだろうか&#8230;</p>
<p>とりあえず setInterval のテスト、トグルスイッチにしてみた。</p>
<form id="form1" name="form1" method="" action="">
	<label for="mxx">タイマー:</label></p>
<input type="text" name="mxx" id="mxx" />
<input name="btn1" type="button" value=" start/stop " onclick="ss()" />
</form>
<p><script type="text/javascript">
var countNum=0;
var timerID=0;
var onoff=0;
window.onload=function(){
t_area=document.getElementById("form1");
//console.log(onoff);
}
function ss(){
onoff=!onoff;
if(onoff){
		timerID=window.setInterval(anime,100);	
		//console.log(onoff);
	}else{
		window.clearInterval(timerID);
		//console.log(onoff);
	}
}
function anime(){
	countNum++;
	t_area.mxx.value=countNum;
}
</script></p>
<pre class="brush: xml; title: ; notranslate">
&lt;form id=&quot;form1&quot; name=&quot;form1&quot; method=&quot;&quot; action=&quot;&quot;&gt;
	&lt;label for=&quot;mxx&quot;&gt;タイマー:&lt;/label&gt;
	&lt;input type=&quot;text&quot; name=&quot;mxx&quot; id=&quot;mxx&quot; /&gt;
	&lt;input name=&quot;btn1&quot; type=&quot;button&quot; value=&quot; start/stop &quot; onclick=&quot;ss()&quot; /&gt;
&lt;/form&gt;
</pre>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
var countNum=0;
var timerID=0;
var onoff=0;
window.onload=function(){
t_area=document.getElementById(&quot;form1&quot;);
//console.log(onoff);
}
function ss(){
onoff=!onoff;
if(onoff){
		timerID=window.setInterval(anime,100);
		//console.log(onoff);
	}else{
		window.clearInterval(timerID);
		//console.log(onoff);
	}
}
function anime(){
	countNum++;
	t_area.mxx.value=countNum;
}
&lt;/script&gt;
</pre>
<p>次はこれを改造して、ロールオーバーしたらopacityを0.80へ、ロールアウトで1.00にすればいいのよね？</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/09/setinterval%e3%81%a8clearinterval/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/09/setinterval%e3%81%a8clearinterval/" />
	</item>
		<item>
		<title>マウス座標を取得するサンプルと引数の疑問2</title>
		<link>http://blog.sakurachiro.com/2009/08/%e3%83%9e%e3%82%a6%e3%82%b9%e5%ba%a7%e6%a8%99%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab%e3%81%a8%e5%bc%95%e6%95%b0%e3%81%ae%e7%96%91%e5%95%8f2/</link>
		<comments>http://blog.sakurachiro.com/2009/08/%e3%83%9e%e3%82%a6%e3%82%b9%e5%ba%a7%e6%a8%99%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab%e3%81%a8%e5%bc%95%e6%95%b0%e3%81%ae%e7%96%91%e5%95%8f2/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 09:03:14 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=459</guid>
		<description><![CDATA[mouseX: mouseY: window.onload=function(){ mouseXY=document.getElementById("form1"); } document.onmousemove=fun [...]]]></description>
			<content:encoded><![CDATA[<form id="form1" name="form1" method="" action="">
<p><label for="mxx">mouseX:</label><br />
<input type="text" name="mxx" id="mxx" /></p>
<p><label for="myy">mouseY:</label><br />
<input type="text" name="myy" id="myy" /></p>
</form>
<p><script type="text/javascript">
window.onload=function(){
mouseXY=document.getElementById("form1");
}
document.onmousemove=function(e){
	mouseXY.mxx.value=e.pageX;
	mouseXY.myy.value=e.pageY;
}
</script></p>
<p>input毎のidをgetElementByIdで指定せずとも辿っていけた</p>
<pre class="brush: xml; title: ; notranslate">
&lt;form id=&quot;form1&quot; name=&quot;form1&quot; method=&quot;&quot; action=&quot;&quot;&gt;
	&lt;label for=&quot;mxx&quot;&gt;mouseX:&lt;/label&gt;
	&lt;input type=&quot;text&quot; name=&quot;mxx&quot; id=&quot;mxx&quot; /&gt;
	&lt;label for=&quot;myy&quot;&gt;mouseY:&lt;/label&gt;
	&lt;input type=&quot;text&quot; name=&quot;myy&quot; id=&quot;myy&quot; /&gt;
&lt;/form&gt;
</pre>
<pre class="brush: jscript; title: ; notranslate">
window.onload=function(){
mouseXY=document.getElementById(&quot;form1&quot;);
}
document.onmousemove=function(e){
	mouseXY.mxx.value=e.pageX;
	mouseXY.myy.value=e.pageY;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/08/%e3%83%9e%e3%82%a6%e3%82%b9%e5%ba%a7%e6%a8%99%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab%e3%81%a8%e5%bc%95%e6%95%b0%e3%81%ae%e7%96%91%e5%95%8f2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/08/%e3%83%9e%e3%82%a6%e3%82%b9%e5%ba%a7%e6%a8%99%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab%e3%81%a8%e5%bc%95%e6%95%b0%e3%81%ae%e7%96%91%e5%95%8f2/" />
	</item>
		<item>
		<title>マウス座標を取得するサンプルと引数の疑問</title>
		<link>http://blog.sakurachiro.com/2009/08/%e3%83%9e%e3%82%a6%e3%82%b9%e5%ba%a7%e6%a8%99%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab%e3%81%a8%e5%bc%95%e6%95%b0%e3%81%ae%e7%96%91%e5%95%8f/</link>
		<comments>http://blog.sakurachiro.com/2009/08/%e3%83%9e%e3%82%a6%e3%82%b9%e5%ba%a7%e6%a8%99%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab%e3%81%a8%e5%bc%95%e6%95%b0%e3%81%ae%e7%96%91%e5%95%8f/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 08:22:06 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=453</guid>
		<description><![CDATA[mouseX: mouseY: window.onload=function(){ mouseX=document.getElementById("mxx"); mouseY=document.getElementByI [...]]]></description>
			<content:encoded><![CDATA[<form id="form1" name="form1" method="post" action="">
<p><label for="mxx">mouseX:</label><br />
<input type="text" name="mxx" id="mxx" /></p>
<p><label for="myy">mouseY:</label><br />
<input type="text" name="myy" id="myy" /></p>
</form>
<p><script type="text/javascript">
window.onload=function(){
mouseX=document.getElementById("mxx");
mouseY=document.getElementById("myy");
}
document.onmousemove=function(e){
	mouseX.value=e.pageX;
	mouseY.value=e.pageY;
}
</script></p>
<pre class="brush: xml; title: ; notranslate">
&lt;form id=&quot;form1&quot; name=&quot;form1&quot; method=&quot;post&quot; action=&quot;&quot;&gt;
	&lt;label for=&quot;mxx&quot;&gt;mouseX&lt;/label&gt;
	&lt;input type=&quot;text&quot; name=&quot;mxx&quot; id=&quot;mxx&quot; /&gt;
	&lt;label for=&quot;myy&quot;&gt;mouseY&lt;/label&gt;
	&lt;input type=&quot;text&quot; name=&quot;myy&quot; id=&quot;myy&quot; /&gt;
&lt;/form&gt;
</pre>
<pre class="brush: jscript; title: ; notranslate">
window.onload=function(){
//テキストフィールド取得
mouseX=document.getElementById(&quot;mxx&quot;);
mouseY=document.getElementById(&quot;myy&quot;);
}
</pre>
<pre class="brush: jscript; title: ; notranslate">
//座標取得して挿入1
document.onmousemove=function(e){
mouseX.value=e.pageX;
mouseY.value=e.pageY;
}
</pre>
<pre class="brush: jscript; title: ; notranslate">
//座標取得して挿入2
function msMove(e){
mouseX.value=e.pageX;
mouseY.value=e.pageY;
}
document.onmousemove = msMove;
</pre>
<p>1でも2でも動く、違いはなんだろう<br />
1のfunction(e)の引数eや<br />
2のmsMove(e)の引数eはなんだろう<br />
いままで理解した（と思っていた）引数とは、使い方が違う気がする。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/08/%e3%83%9e%e3%82%a6%e3%82%b9%e5%ba%a7%e6%a8%99%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab%e3%81%a8%e5%bc%95%e6%95%b0%e3%81%ae%e7%96%91%e5%95%8f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/08/%e3%83%9e%e3%82%a6%e3%82%b9%e5%ba%a7%e6%a8%99%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab%e3%81%a8%e5%bc%95%e6%95%b0%e3%81%ae%e7%96%91%e5%95%8f/" />
	</item>
		<item>
		<title>DOMとDHTML</title>
		<link>http://blog.sakurachiro.com/2009/08/dom%e3%81%a8dhtml/</link>
		<comments>http://blog.sakurachiro.com/2009/08/dom%e3%81%a8dhtml/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 03:49:23 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[とりあえずメモ]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=446</guid>
		<description><![CDATA[いまさら感たっぷりですけど DOM（Document Object Model）と DHTML（Dynamic HTML）の違いは？ AJAX（Asynchronous JavaScript + XML）は非同期通信を利 [...]]]></description>
			<content:encoded><![CDATA[<p>いまさら感たっぷりですけど<br />
<a href="http://ja.wikipedia.org/wiki/Document_Object_Model">DOM</a>（Document Object Model）と<br />
<a href="http://ja.wikipedia.org/wiki/%E3%83%80%E3%82%A4%E3%83%8A%E3%83%9F%E3%83%83%E3%82%AFHTML">DHTML</a>（Dynamic HTML）の違いは？<br />
<a href="http://ja.wikipedia.org/wiki/%E3%83%80%E3%82%A4%E3%83%8A%E3%83%9F%E3%83%83%E3%82%AFHTML">AJAX</a>（Asynchronous JavaScript + XML）は非同期通信を利用したDHTML？</p>
<p>document.write()が<br />
document.getElementById(&#8220;ID名&#8221;).innerHTML？</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/08/dom%e3%81%a8dhtml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/08/dom%e3%81%a8dhtml/" />
	</item>
		<item>
		<title>window.onload=function(){}</title>
		<link>http://blog.sakurachiro.com/2009/08/window-onload/</link>
		<comments>http://blog.sakurachiro.com/2009/08/window-onload/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 03:16:25 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=428</guid>
		<description><![CDATA[答える内容に合わせて選択項目の内容を変更するを使ってwindow.onload=function(){}を練習してみたメモ。 javasript html body onloadを window.onload=funct [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sakurachiro.com/_exercise/javascript/form/p52_1.html" title="作例">答える内容に合わせて選択項目の内容を変更する</a>を使ってwindow.onload=function(){}を練習してみたメモ。<br />
<span id="more-428"></span><br />
javasript</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
var menuItem=[
[&quot;渋谷&quot;,&quot;表参道&quot;,&quot;外苑前&quot;,&quot;青山一丁目&quot;,&quot;赤坂見附&quot;,&quot;溜池山王&quot;],
[&quot;赤坂見附&quot;,&quot;国会議事堂前&quot;,&quot;霞ヶ関&quot;,&quot;銀座&quot;,&quot;東京&quot;,&quot;大手町&quot;],
[&quot;中目黒&quot;,&quot;恵比寿&quot;,&quot;広尾&quot;,&quot;六本木&quot;,&quot;神谷町&quot;,&quot;霞ヶ関&quot;,&quot;日比谷&quot;,&quot;銀座&quot;]];

function setMenuOption(obj01,obj02){
	for(var i=0;i&lt;obj02.length;i++){
		obj02.options[i]=null;
	}
	var n=obj01.selectedIndex;
	if(menuItem[n].length&gt;0){
		for(i=0;i&lt;menuItem[n].length;i++){
			obj02.options[i]=new Option(menuItem[n][i],menuItem[n][i]);
		}
	}
}
&lt;/script&gt;
</pre>
<p>html</p>
<pre class="brush: xml; highlight: [1]; title: ; notranslate">
&lt;body onload=&quot;setMenuOption(document.myForm.sbox01,document.myForm.sbox02)&quot;&gt;

&lt;p&gt;body onload&lt;/p&gt;
&lt;form name=&quot;myForm&quot;&gt;
	&lt;select name=&quot;sbox01&quot; onchange=&quot;setMenuOption(this,this.form.sbox02)&quot;&gt;
		&lt;option value=&quot;1&quot;&gt;銀座線&lt;/option&gt;
		&lt;option value=&quot;2&quot;&gt;丸の内線&lt;/option&gt;
		&lt;option value=&quot;3&quot;&gt;日比谷線&lt;/option&gt;
	&lt;/select&gt;
	&lt;select name=&quot;sbox02&quot;&gt;
	&lt;/select&gt;
&lt;/form&gt;
</pre>
<p>body onloadを</p>
<pre class="brush: xml; title: ; notranslate">&lt;body onload=&quot;setMenuOption(document.myForm.sbox01,document.myForm.sbox02)&quot;&gt;</pre>
<p>window.onload=function(){}に書く</p>
<pre class="brush: jscript; title: ; notranslate">
window.onload=function(){
	setMenuOption(document.myForm.sbox01,document.myForm.sbox02);
}</pre>
<p>最初、引数を指定する方法がわからなくて
<pre class="brush: jscript; title: ; notranslate">
window.onload=	setMenuOption(document.myForm.sbox01,document.myForm.sbox02);
</pre>
<p>なんて書いてたけど、これはダメ。</p>
<p>しかしbodyのonloadって何なんだろう<br />
いままでjavascriptだと思ってたけどhtmlのイベントかなにかなのかな？<br />
window.onload=function(){}は文法がasに似てるのでjavascriptだと思うのだけれど<br />
って恥ずかしいレベルのお話ですよね。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/08/window-onload/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/08/window-onload/" />
	</item>
		<item>
		<title>答える内容に合わせて選択項目の内容を変更する</title>
		<link>http://blog.sakurachiro.com/2009/08/%e7%ad%94%e3%81%88%e3%82%8b%e5%86%85%e5%ae%b9%e3%81%ab%e5%90%88%e3%82%8f%e3%81%9b%e3%81%a6%e9%81%b8%e6%8a%9e%e9%a0%85%e7%9b%ae%e3%81%ae%e5%86%85%e5%ae%b9%e3%82%92%e5%a4%89%e6%9b%b4%e3%81%99%e3%82%8b/</link>
		<comments>http://blog.sakurachiro.com/2009/08/%e7%ad%94%e3%81%88%e3%82%8b%e5%86%85%e5%ae%b9%e3%81%ab%e5%90%88%e3%82%8f%e3%81%9b%e3%81%a6%e9%81%b8%e6%8a%9e%e9%a0%85%e7%9b%ae%e3%81%ae%e5%86%85%e5%ae%b9%e3%82%92%e5%a4%89%e6%9b%b4%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 20:09:53 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=371</guid>
		<description><![CDATA[ずいぶん前に買って放置していた MdNのプロとして恥ずかしくないJavaScriptの大原則 Flash関係の書籍だとサンプルプログラムのダウンロードが出来るのにJavaScriptはサンプルソースが無かった。 ためしに [...]]]></description>
			<content:encoded><![CDATA[<p>ずいぶん前に買って放置していた<br />
MdNのプロとして恥ずかしくないJavaScriptの大原則<br />
Flash関係の書籍だとサンプルプログラムのダウンロードが出来るのにJavaScriptはサンプルソースが無かった。<br />
ためしに<a href="http://sakurachiro.com/_exercise/javascript/form/p52_1.html" title="作例へ">p52｜答える内容に合わせて選択項目の内容を変更する</a>てのを作ってみたんだけど、<del datetime="2009-08-07T20:17:16+00:00">2個目のセレクトボックスに配列をちゃんと読み込んでくれない。<br />
なんだろうソースミスってるのかな。</del>(ミスってた。)</p>
<p>CD-ROMつけてないんだから、ちゃんと動作するサンプルソースくらいダウンロード出来るようにしといて欲しいなぁ。<br />
そもそも書籍に、対応ブラウザーも表記されてないみたいだし<br />
大抵のサンプルソースはscript type=から始まってるけどDOCTYPEによって（標準準拠モードと後方互換モード）動かないのあったりもするんでしょ？（jsよく判らない人の認識）<br />
完動するサンプルソースがないと不安になる初心者は、こうゆうのは向かないんだろうな。<br />
選んだ自分がいけないのかな。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/08/%e7%ad%94%e3%81%88%e3%82%8b%e5%86%85%e5%ae%b9%e3%81%ab%e5%90%88%e3%82%8f%e3%81%9b%e3%81%a6%e9%81%b8%e6%8a%9e%e9%a0%85%e7%9b%ae%e3%81%ae%e5%86%85%e5%ae%b9%e3%82%92%e5%a4%89%e6%9b%b4%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/08/%e7%ad%94%e3%81%88%e3%82%8b%e5%86%85%e5%ae%b9%e3%81%ab%e5%90%88%e3%82%8f%e3%81%9b%e3%81%a6%e9%81%b8%e6%8a%9e%e9%a0%85%e7%9b%ae%e3%81%ae%e5%86%85%e5%ae%b9%e3%82%92%e5%a4%89%e6%9b%b4%e3%81%99%e3%82%8b/" />
	</item>
		<item>
		<title>javascript初心者</title>
		<link>http://blog.sakurachiro.com/2009/08/javascript%e5%88%9d%e5%bf%83%e8%80%85/</link>
		<comments>http://blog.sakurachiro.com/2009/08/javascript%e5%88%9d%e5%bf%83%e8%80%85/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 14:38:39 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=323</guid>
		<description><![CDATA[javascript、よくわからない。 よくわからないけれどもas1を少し触ってたので、なんとなく流れがわかったりはする（程度）。 自分のために使う事は皆無で、誰かが仕事で使う時に一緒に調べたり書いたりしてたけど、ほぼコ [...]]]></description>
			<content:encoded><![CDATA[<p>javascript、よくわからない。<br />
よくわからないけれどもas1を少し触ってたので、なんとなく流れがわかったりはする（程度）。<br />
自分のために使う事は皆無で、誰かが仕事で使う時に一緒に調べたり書いたりしてたけど、ほぼコピペという体たらくだ。</p>
<p>なんかハードルが高い。<br />
よくわかってないのにハードルが高いと感じる理由は何故だろう？と考える。</p>
<p>cssのようにブラウザ（主にIEだけど）によって挙動が変わるからなんじゃないだろうか。<br />
よくわかってないんだけどjavascriptはブラウザによって書き方が変わるんだよね？<br />
各ブラウザ毎の書き方がよくわからない、ってのは無駄にハードルをあげていると思う</p>
<p>一つの同じ処理をするのに、ifで分岐して何個も別のコードを書かなきゃならないなんて無駄だ、すごく。<br />
どこかにブラウザ毎の挙動の違いを纏めてくれてるサイトは無いでしょうか？</p>
<p>[追記｜20090806_21:45]<br />
IT PROの記事で「一つの同じ処理をするのに～～」のくだりで同じような事を書いてるのをみつけたので読んでみようかと思うメモ</p>
<p>DOMから始めるJavaScriptモダン・スクリプティング</p>
<p>http://itpro.nikkeibp.co.jp/article/COLUMN/20070627/276026/?ST=webdesign</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/08/javascript%e5%88%9d%e5%bf%83%e8%80%85/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/08/javascript%e5%88%9d%e5%bf%83%e8%80%85/" />
	</item>
		<item>
		<title>javascriptなぁ。。。</title>
		<link>http://blog.sakurachiro.com/2009/07/javascript%e3%81%aa%e3%81%81%e3%80%82%e3%80%82%e3%80%82/</link>
		<comments>http://blog.sakurachiro.com/2009/07/javascript%e3%81%aa%e3%81%81%e3%80%82%e3%80%82%e3%80%82/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 23:22:35 +0000</pubDate>
		<dc:creator>まこと</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.sakurachiro.com/?p=198</guid>
		<description><![CDATA[なんか得体が知れなくて嫌な感じなのは、ブラウザ毎に使える関数が違ったりするって話を聞くけど具体的に何がOKで何がNGかがよくわからんところなんだろうなぁと思うんだけど、それ言ったらcssだってブラウザ毎に挙動が違うじゃん [...]]]></description>
			<content:encoded><![CDATA[<p>なんか得体が知れなくて嫌な感じなのは、ブラウザ毎に使える関数が違ったりするって話を聞くけど具体的に何がOKで何がNGかがよくわからんところなんだろうなぁと思うんだけど、それ言ったらcssだってブラウザ毎に挙動が違うじゃんね。</p>
<p>ようわからんーってさせるのは一体なんだ。</p>
<p><span class="note">&lt;body onload=&#8221;hogehoge();&#8221;&gt;をwindow.onload=function(){}</span>に出来ると知った。<br />
なんかデメリットあるのかな？と調べてると特に変わりはないみたいだけど、よくある「onloadで2つの関数を呼べない」てのを目にした。</p>
<p>解決するにはaddEventListenerを使えばよいそうでそれが使えないブラウザ（IE）はattachEventを使うとの事。</p>
<p>これだよ、でたよ、ここでもまたIEだよ。</p>
<p>でもjavascript詳しくない身からしてみると、attachEventで変わりが利くなら、全部のブラウザでattachEventの方使えばいいんじゃない？と思ったんだけど、これってもしかして透過pngを使うIE6のfilterみたいなもんで、IEの独自拡張？だったりするのかねぇ。</p>
<p>あーようわからん。</p>
<p>firebugの使い方でも調べようか。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sakurachiro.com/2009/07/javascript%e3%81%aa%e3%81%81%e3%80%82%e3%80%82%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.sakurachiro.com/2009/07/javascript%e3%81%aa%e3%81%81%e3%80%82%e3%80%82%e3%80%82/" />
	</item>
	</channel>
</rss>

