javascriptのArrayオブジェクトのindexOfを使う時

2012/03/28

IE8以下は、配列にindeOfが未実装なのでエラーが出ます。

ちなみに、IE9だとちゃんと実装済みです。

使いたいときは、手動で追加します。

if(!Array.indexOf){
  Array.prototype.indexOf = function(target){
    for(var i = 0; i < this.length; i++){
      if(this[i] === target){
        return i;
      }
    }
    return -1;
   }
}

									

隙間なくブロック要素を敷き詰めたい時は、jquery masonryの出番

2012/03/09

隙間なくブロック要素を敷き詰めたい時は、jquery masonryが便利。実はInfinite Scrollと組み合わせて、無限スクロールができたりとかいろいろ機能が豊富。

<script type=”text/javascript” src=”http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js”></script&gt;
<script type=”text/javascript” src=”jquery.masonry.min.js”></script>

で、スクリプトを読み込んでから、指定はこんな感じ。 jqueryのバージョンは1.7じゃなくても1.3ぐらいでも動いてたので、どれでも大体動くと思う。

$(‘対象の要素’).masonry({
itemSelector : ‘.box’,
columnWidth : 320,
isFitWidth: true
});

基本は、リサイズに反応して、要素を再配置してくれるんだけど、クリックとかなんとかで要素の大きさがかわったりしても無視される。

そういう時は、reloadメソッドを使えば、好きなタイミングで再構築できる。指定方法はこんな感じ。

$(“対象の要素”).masonry( ‘reload’ )

オンクリックでブロック要素の出たり消えたりするとしたら、

$(“.left_img”).css(“cursor”, “pointer”).click(function(){
$(this).next().slideToggle(“fast”,function(){$(“対象の要素”).masonry( ‘reload’ );});
});

という感じで、コールバック関数として呼ぶ形で指定すればOK。

注意点としては、画像の大きさを指定していなかったりする場合は、DOM構築完了時には、ブロックの大きさが確定していない。その場合は、うまく配置ができない。その場合

jQuery.event.add(window, “load”, function(){ $(‘対象の要素’).masonry(‘reload’) });

みたいな形で、loadイベントでリロードさせるか、最初のmasonryをloadイベントで動かすかの方法をとる必要がある。


Firebugのコンソールに出力する

2012/02/27

Firebugのコンソールに出す

console.log(“hoge”);

オブジェクトの中身を表示(このメソッドが使えるのはFirefox限定)

object.toSource();


フラッシュの上に、div要素などを表示する方法

2012/02/07

フラッシュの上に、div要素とかプルダウンとかを表示すると、隠れてしまうことがあります。

<param name=”wmode” value=”transparent” />

を指定すれば、ok。SWFObjectを使ってる場合は

so.addParam(“wmode”, “transparent”);

を指定する。


google mapでiframe使用で吹き出しを出さない方法

2011/10/26

&amp;iwloc=B
をembedの最後に追加する


Photoshopのjavascript

2011/08/02

実はPhotoshopでJavaScriptが使えるのはご存じだろうか?

独自の関数がいっぱいだけど、文法は普通にJavascriptだ。

ファイル – スクリプト からjsファイルを指定できる。

回転とか

activeDocument.rotateCanvas(90);

こんなだし、横幅320ピクセルに縮小処理なら

//縮小処理
var idImgS = charIDToTypeID( “ImgS” );
var desc3 = new ActionDescriptor();
var idWdth = charIDToTypeID( “Wdth” );
var idPxl = charIDToTypeID( “#Pxl” );
desc3.putUnitDouble( idWdth, idPxl, 320.000000 );
var idscaleStyles = stringIDToTypeID( “scaleStyles” );
desc3.putBoolean( idscaleStyles, true );
var idCnsP = charIDToTypeID( “CnsP” );
desc3.putBoolean( idCnsP, true );
var idIntr = charIDToTypeID( “Intr” );
var idIntp = charIDToTypeID( “Intp” );
var idBcbc = charIDToTypeID( “Bcbc” );
desc3.putEnumerated( idIntr, idIntp, idBcbc );
executeAction( idImgS, desc3, DialogModes.NO );

のような感じだし、Web保存するなら

var doc = app.activeDocument;

dName = “C:\abc\def\tmp.jpg”;

//Web用に保存用の設定をする
var exp = new ExportOptionsSaveForWeb();

//画像の形式
//COMPUSERVEGIF, JPEG, PNG-8, PNG-24, BMP の指定が可能
exp.format = SaveDocumentType.JPEG;

//インターレースにするか(プログレッシブJPGにするか)
exp.interlaced = true;

//最適化するか
exp.optimized= true;

//画質(0~100 デフォルトは60 大きいほど高品質)
exp.quality = 70;

//エクスポート実行
var imgfile = new File(outPath + “/” + dName);
doc.exportDocument(imgfile, ExportType.SAVEFORWEB, exp);

な感じ


ssiの日付関係の書式指定

2011/07/21

最近あまりつかわないが、SSIについて。

日付を特定の書式で表示させたい時は、config timefmtを使用する。

<!–#config timefmt=”%Y/%m/%d %H:%M:%S”–><!–#echo var=”DATE_LOCAL”–>

文法関係は、strftimeと一緒なので、この辺みればわかる。適当に引用しとく

<!–#config timefmt=”%s”–><!–#echo var=”DATE_LOCAL”–>
%a
現在のロケールにおける曜日の省略名。
%A
現在のロケールにおける曜日の完全な名前。
%b
現在のロケールにおける月の省略名。
%B
現在のロケールにおける月の完全な名前。
%c
現在のロケールにおいて一般的な日付・時刻の表記。
%C
世紀 (西暦年の上 2 桁)。 (SU)
%d
月内通算日 (10 進数表記) (01-31)。
%D
%m/%d/%y と等価。(うえっ、アメリカ専用だ。アメリカ以外の国では %d/%m/%y の方が一般的だ。紛らわしいので、使用すべきではない。) (SU)
%e
%d と同様に月内通算日を 10 進数で表現するが、 1 桁の場合 10 の位にゼロを置かずスペースを置く。(SU)
%E
別形式を使用する際の修飾子。下記参照。 (SU)
%F
%Y-%m-%d と等価 (ISO 8601 形式の日付フォーマット)。 (C99)
%G
ISO 8601 週単位表記の年 (week-based year; 「注意」の節を参照)。世紀も 10 進数で表す。 ISO 週番号 (%V を参照) に対応した 4 桁の西暦年。これは基本的には %Y と同じ形式だが、ISO 週数が前年や翌年になる場合にはその年が使用される点が異なる。(TZ)
%g
%G と同様。但し、世紀を含まず下 2 桁のみを表示 (00-99)。 (TZ)
%h
%b と等価 (SU)
%H
24 時間表記での時 (hour)。 (00-23)
%I
12 時間表記での時 (hour)。 (01-12)
%j
年の初めから通算の日数。 (001-366)
%k
24 時間表記での時 (0-23)。 1 桁の場合には前にゼロでなくスペースが置かれる。 (%H も参照) (TZ)
%l
12 時間表記での時 (0-12)。 1 桁の場合には前にゼロでなくスペースが置かれる。 (%I も参照) (TZ)
%m
月 (10 進数表記)。 (01-12)
%M
分 (10 進数表記) (00-59)
%n
改行。 (SU)
%O
別形式を使用する際の修飾子。以下を参照。(SU)
%p
現在のロケールにおける「午前」「午後」に相当する文字列。英語の場合には “AM” または “PM” となる。正午は「午後」、真夜中は「午前」として扱われる。
%P
%p と同様であるが小文字が使用される。英語の場合には “am” や “pm” となる。(GNU)
%r
午前・午後形式での時刻。 POSIX ロケールでは %I:%M:%S %p と等価である。(SU)
%R
24 時間表記での時刻、秒は表示しない (%H:%M)。 秒を含んだものは以下の %T を参照すること。(SU)
%s
紀元 (Epoch; 1970-01-01 00:00:00 +0000 (UTC)) からの秒数。 (TZ)
%S
秒 (10 進数表記) (00-60) (時々ある閏秒に対応するため、値の範囲は 60 までとなっている)
%t
タブ文字 (SU)
%T
24 時間表記の時間 (%H:%M:%S) (SU)
%u
週の何番目の日 (10 進数表記) か。月曜日を 1 とする (1-7)。 %w も参照。(SU)
%U
年の初めからの通算の週番号 (10 進数表記) (00-53)。その年の最初の日曜日を、第 1 週の始まりとして計算する。 %V%W も参照すること。
%V
ISO 8601 形式での年の始めからの週番号 (「注意」の節を参照)。 10 進数表記で、01 から 53 の値となる。週番号は、新しい年が少なくとも 4 日以上含まれる最初の週を 1 として計算する。 %U%W も参照のこと。(SU)
%w
週の何番目の日 (10 進数表記) か。日曜日を 0 とする。(0-6)。 %u も参照。(SU)
%W
年の初めからの通算の週番号 (10 進数表記) (00-53)。その年の最初の月曜日を、第 1 週の始まりとして計算する。
%x
現在のロケールで一般的な日付表記。時刻は含まない。
%X
現在のロケールで一般的な時刻表記。日付は含まない。
%y
西暦の下2桁 (世紀部分を含まない年) (00-99)。
%Y
世紀部分を含めた ( 4 桁の) 西暦年。
%z
+hhmm-hhmm の形式のタイムゾーン (UTC へのオフセット時間)。(SU)
%Z
タイムゾーンまたはゾーン名または省略名。
%+
date(1) 形式での日時。(TZ) (glibc2 ではサポートされていない)
%%
aq%aq 文字。