style.left,style.top プロパティの値をパース中にエラー

prototype.js(ver1.5)を使って、
指定したエレメントの下に
エレメントを移動するjavascriptを書いていた

funciton moveElement(id,moveId) {
var targetPosition = Position.page($(id));
$(moveId).style.top = targetPosition[1];
}

ie6では、意図したように動作するが、
firefoxでは動かない。

firefoxのエラーコンソールには、
[top プロパティの値をパース中にエラーが発生しました]
と表示

数値に単位をつけて指定してなかったのが原因みたい

$(moveId).style.top = targetPosition[1] + "px";


firefoxのエラー
[top プロパティの値をパース中にエラーが発生しました]
はなおった。

しかし、
指定したエレメントの位置を取得する処理が
スクロールするとずれる。

それで
prototype.jsのバージョンを1.6にあげて

// ウィンドウのスクロール量取得
var wScroll = document.viewport.getScrollOffsets();;
wTop = targetPosition[1] + wScroll.top;
$(moveId).style.top = wTop + "px";

にした。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 3

なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー)

この記事へのコメント

この記事へのトラックバック