JavaScript

「offset」と「style」で取得する値が違う

offset_style_data ちょっとはまったのでメモ。 以下のように「offset」と「style」で取得する値が根本的に違うことに気がつかないとはまっちゃいます。 以下の場合はどちらもオブジェクトの座標を取得しようとしてます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var item = document.getElementById( 'item' );
 
//「offset」の場合
var item_left1 = item.offsetLeft;
var item_top1 = item.offsetTop;
 
//ログをはきだす
console.log(item_left1);
console.log(item_top1);
 
//「style」の場合
var item_left2 = item.style.left;
var item_top2 = item.style.top;
 
//ログをはきだす
console.log(item_left2);
console.log(item_top2);
以下が取得結果。
1
2
3
4
153
196
153.28406836px
196.45974376px
「offset」は整数のみを取得しています。 「style」は小数点まで取得し、しかも「px」という表記まであります。 なので「style」で取得した値を計算しようとすると「NaN」と返ってきちゃうので気をつけましょう。 取得した値をなにか別のオブジェクトに補正をかけてからセットしたいなら以下のような感じ。 「offset」で取得した値に補正をかける関数を経由させて、 「style」で座標をセットしてます。
1
2
3
4
5
6
7
8
9
10
11
12
//新しいオブジェクト
var new_item = document.getElementById( 'new_item' );
 
//新しいオブジェクトに座標をセット
new_item.style.left = set(item_left1) + 'px';
new_item.style.top = set(item_top1) + 'px';
 
//座標を半分にする
function set(valueA) {
    var a = valueA / 2;
    return a;
}
他にもいいやり方はありそうですが、 私が今回やったのはこんな感じでした。

関連記事

  1. 20120826222152

    JavaScript

    JavaScriptでテキストボックスから値を取得する

    テキストボックスに入力された値を取得します。Elementオブジ…

  2. tweenmax_js_oncomplete.jpg

    JavaScript

    【TweenMax.js】アニメーション終わりに関数を呼び出す!

    最近はWebアプリでアニメーションが必要になったときに、「Twen…

  3. QueryString.jpg

    JavaScript

    クエリーストリングを利用してWebページ間でデータを受け渡してみる

    「クエリーストリング」っていうのは以下のようなGoogleで検索し…

  4. js_global.jpg

    JavaScript

    JavaScriptでグローバル変数を減らす方法

    グローバル変数はいいことない!もしかしたら使っているライブラリー…

  5. js_style.jpg

    JavaScript

    CSSのプロパティをJavaScriptで指定する

    Elementオブジェクトのstyleプロパティでその要素に対し…

  6. trycatch.jpg

    JavaScript

    JavaScriptでエラーが起っても固まらないように「try-catch」する

    HTML5とJavaScriptでこねこねしてWebアプリを作って…

最近の記事

  1. 【無印良品】ゴールデンウィーク中のご飯にレトルト買い込み!
  2. 世代ど真ん中だった!!『週刊少年ジャンプ展 vol2』
  3. デジタル通貨を買ってみた記録!とりあえず元は取っている!
  4. 【コレクション】カードダス:SDガンダム外伝シリーズ
  5. 懐かしい!!カードダスSD戦国伝!!
  6. 【無印良品】作り置きに欠かせない!バルブ付き密閉保存容器
  7. 【UNIQLO】冬のジム通いにブロックテックフリースパーカをお得に購入!!
  8. 【UNIQLO】冬のジム通いにブロックテックフリースパンツをお得に購入!!
  9. 【UNIQLO】ユニクロ誕生感謝祭で買いだめ!
  10. 便利すぎる!買ってよかったキッチンツール「キッチンペーパーハンガー」

アーカイブ

  1. wired_7-1.jpg

    読書

    『WIRED』VOL.7は新年度に向けた特集「未来の会社」
  2. new_imac-1.jpg

    Mac

    新iMacがキターーーーー!!!さっそく開封!
  3. じつは線香花火を作るのって難しい! 無印良品主催の線香花火手作りワークショップが熱い!

    イベント

    じつは線香花火を作るのって難しい! 無印良品主催の線香花火手作りワークショップが…
  4. LEGOSTREAM

    LEGO

    「LEGOSTREAM」やってみます
  5. 日常

    稲妻フェスティバル2007
PAGE TOP