_onichannn

【Javascript】IEにおけるObject.keys関数について。

http://forum.jquery.com/topic/object-keys-fails-in-ie8

 

Object.keys does not exist in IE 8.

 

Object.keys does not exist in IE 8!!!

 

そんな関数IE8では存在しましぇぇぇぇえええん!!!ということらしい。

 

通りでエラーになるわけだ。しかしどうしてIE8のみなのか。もうほんとにこの問題児はいろいろと理解し難い。IEが消えてなくなってくれる日を夢に見て明日も生きてゆこうと思う。

 

【jQuery】IE9以降とIE6, 7, 8を判別する方法。

IEはゴミ。産廃。異論は認めない。

ということでどうにもこうにも判別しなきゃいけない場面がやってきたので調べてみた。

if(!$.support.opacity){
	// IE6, 7, 8
}else{
	// gt IE9
}

「$.support」はブラウザごとにサポートしている機能をブーリアンで返却してくれるとっても素敵なAPI。なのでIE9からサポートしているopacityの実装状況を判定することで上記のような分岐が可能になるんだね。そうだね。プロテ(ry
意外と簡単にできちゃうんだね。jQueryがつくづく最強だと感じざるを得ない。

そんなことよりIEは氏ん(ry。

 

【Eclipse】複数行をまとめてコメントアウトするショートカット。

メモ。

コメントアウトしたい行を選択した後。

■コメントアウトしたい場合

Ctrl + Shift + /

■コメントアウト解除したい場合。

Ctrl + Shift + \

 

【CSS】transitionプロパティのeasingアニメーション早見表。

理想の挙動を実現しようとすると一苦労なeasingアニメーション。しかしこの難解なベジェ曲線を一瞬で生成してくれる(されてる)神サービスを見つけたのでメモ。

http://easings.net/

もうドメインからしてeasingのためだけに存在してる気合の入りよう。

アクセスすると下のような図と共にeasingアニメーションの名前一覧が表示される。マウスオーバーでアニメーションの挙動をその場で確認でき、クリックするとそのアニメーションの実装方法が詳細に表示される。

f13bb931f15f665caf339e6d8909c441

解説はそれぞれ、JS、SCSS、CSS、3つでの実装方法が記載されており、全てコピペで動いてしまうという神仕様。特にCSSでの実装はベジェ曲線を自分で描画しないといけないため知識がないと一苦労だが、このチートシートさえあれば自分のような情弱でもサクっとリッチなアニメーションを作成できてしまうのである。

これは今後ほんとにお世話になりそうだ。

 

【CakePHP】ビューブロックを使ってみる。

例えばページごとに読み込むスクリプトを減らしたり追加したかったりするのをスマートに書きたいときなどに便利。

レイアウトファイルのヘッダー内に以下を記述。

echo $this->fetch('script');

次に各ビューファイルで以下を記述。

$this->append('script');
echo $this->element('elementFileName');
$this->end();

するとヘッダー内に記述したfetch(‘script’)の部分に呼び出したエレメントを挿入してくれるのである。
ちなみにHTMLヘルパーで読み込んだスクリプトファイルもfetch(‘script’)に渡すことが可能。

例えば以下のような感じ。

echo $this->Html->script('//www.google.com/jsapi', array('inline' => false));

HTMLヘルパー、script()メソッドの第二引数に「’inline’ => false」を渡してやると、その場ではなくビューブロック内に追加してくれる。
jsapiを必要なページのみで読み込みたい場合など、状況に応じてブロック内を簡単に書き換えられるため非常に便利。

 

【PHP】数列を特定の桁数までゼロ埋めする。

数値を2桁にそろえたい場合が意外に多いのでメモ。

一桁だった場合先頭をゼロで埋める処理(ゼロパディング)を行う。

$num = '5';
$num = sprintf('%02d', $num);
var_dump($num);
↓
string(2) "05"

第一引数のフォーマットを「’%05d’」、「’%07d’」とかにすれば任意の桁数まで0で埋めてくれるので便利。

 

【Javascript】null、undefindの判定方法。

比較演算子を用いずともifに渡せば適切に評価してくれる模様。

var str = null;
if(str){
	// 処理
}

undefindも同様なので割愛。

ちなみに。

if(1){
	// true
}
if(0){
	// false
}
if(-1){
	// true
}

最後が重要。

 

【Javascript】ランダムな整数を生成する。

戒メモシリーズ。

Javascriptの超基本。教科書の1ページ目レベル。いい加減覚えろ俺。

// 0~99
var num = Math.floor(Math.random()*100);

// 0~50
var num = Math.floor(Math.random()*51);

// 50~70
var num = 50 + Math.floor(Math.random()*21);