2012/02/28

[JavaScript] 要素の作成・追加・削除・追加・挿入・置換・移動

//作成
document.createElement('タグ名');

//削除
parent.removeChild(子要素);

//子要素として追加
elem.appendChild(追加したい要素);

//子要素を置換
elem.replaceChild(新要素, 旧要素);

//位置を指定して挿入
parent.insertBefore(新要素, 既存要素);
↑既存要素の前に新しい要素を挿入する
既存要素は省略可能
要素の移動にも使える

2012/02/24

SCSSを使ってみた


なんとなく知ってたんだけど、ちょっとめんどくさそうだなーと敬遠していたんですが、中村勇吾さんの会社の採用情報の「好ましいスキル」に「Sass, LESSなどのCSS拡張言語の利用経験」というのを見つけたのがきっかけで触ってみる気になりました。

具体的には「CSS HappyLife」というサイトが詳しく紹介してくれてます。

【Sassを覚えよう!】もくじ的なのと参考リンク:CSS HappyLife



軽く触ってみた感じ…とても便利です。
めんどくさがって敬遠していた過去の自分を叱りつけてやりたい。
LESSってやつも気になります。
CakePHPだとphpでコンパイルしてくれるプラグインがあるらしいので、Cakeの時はLESSも使ってみようかなと思ってます


How to use LESS CSS in CakePHP application(英語)

2012/02/22

videoタグの動画ファイルが再生できるかどうかJavaScriptで判定する


HTML5の新しいタグ、video要素では動画の読み込みに失敗するとerrorイベントが起きる
//video要素を取得
var v = document.getElementById('#video');

v.addEventListener('error', function(){
 //エラー時の処理
});

errorイベントは「メディアデータの読み込み中にエラーが発生した時」に発生するらしい

参考:
video要素、audio要素をJavaScriptから操作する

errorイベントが起きた時は、src属性を他の動画に変更する処理をしたんだけど、新しい動画でも読み込みエラーが起きて、無限にエラーを履き続けるようになった。
なので、やめた。

2012/02/09

[MySQL] Nullの値のものは最後に表示する

よく忘れるのでメモ

MySQLで、あるカラムの値がNULLの場合は、値が入力されているものよりも後ろに出したいっ時

ORDER BY カラム名 IS NULL ASC
を入れるとOK!

参考:
MySQL で NULL を一番最後にして昇順にソートする

2012/02/07

[CakePHP] Ajaxによるアクセスかどうか判定する


Ajaxからのアクセス以外は許可したくない時など

//RequestHandlerコンポーネントを追加
public $components = array(
'RequestHandler'
);

public index(){
if($this->RequestHandler->isAjax()){
//Ajaxの場合
}else{
//それ以外の場合
}
}

俺の場合はAjaxのアクセスしか許可せず、それ以外は404にすることが多い

2012/02/02

[iPhone] iPhoneでのスクロール判定。 iPhone3, ios 4.1だとdocument.body.scrollTop/scrollLeftが取得できない


facebookのページみたいに、ページ下部までスクロールしたら自動で次のデータを表示する処理を以前に作った
iPhone4.1だと自動で読み込まないことが判明。

定期的にdocument.body.scrollTopでスクロール位置を取得して、ページの下の方までスクロールしたら次を読み込むという風にしていたんだけど、iPhone4.1だとdocument.body.scrollTopが使えなかった

対処:
window.pageXOffset/pageYOffsetを使うと取得できる
Androidでも大丈夫(Android2.2, 2.3, 4.0で確認済み)