超久しぶりの更新です。
ちゃんと生きてますよ。
最近twitterばっかりで。
結構長くなりそうなメモ書きとして今後はアメーバを利用したいと思います。
では本題。
jQueryにて、animateでmarginなどを操作する際、
parseIntでCSSの値を整数として取得することがあると思います。
==========================================================
例)
var hoge = parseInt($("#hoge").css("margin-left"));
$("#hoge").click(function(){
$(this).animate({
marginLeft: hoge - 300 + "px"
}, 500, "easeInOut");
});
==========================================================
この際、parseIntの対象となる要素(上の例では #hoge )のCSSが
何も指定していない、つまり、デフォルト値のままだと、IE8以下でエラーが起こります。
つまり、上例のスクリプトを機能させるには、
スタイルシートで下記のように何かしらの数値を指定しておく必要があります。
==========================================================
#hoge {
margin-left: 0px;
}
==========================================================
デフォルト値のままだと、NaNを返すため、数値を取得できず、エラーとなるようです。
アニメーション前のマージンが0pxだからって何も指定しないと、ハマります。
詳細は以下を参照。
CSSで属性値を数値で取得できるか?
ちゃんと生きてますよ。
最近twitterばっかりで。
結構長くなりそうなメモ書きとして今後はアメーバを利用したいと思います。
では本題。
jQueryにて、animateでmarginなどを操作する際、
parseIntでCSSの値を整数として取得することがあると思います。
==========================================================
例)
var hoge = parseInt($("#hoge").css("margin-left"));
$("#hoge").click(function(){
$(this).animate({
marginLeft: hoge - 300 + "px"
}, 500, "easeInOut");
});
==========================================================
この際、parseIntの対象となる要素(上の例では #hoge )のCSSが
何も指定していない、つまり、デフォルト値のままだと、IE8以下でエラーが起こります。
つまり、上例のスクリプトを機能させるには、
スタイルシートで下記のように何かしらの数値を指定しておく必要があります。
==========================================================
#hoge {
margin-left: 0px;
}
==========================================================
デフォルト値のままだと、NaNを返すため、数値を取得できず、エラーとなるようです。
アニメーション前のマージンが0pxだからって何も指定しないと、ハマります。
詳細は以下を参照。
CSSで属性値を数値で取得できるか?