OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

テーブルの位置情報

  • すぐに回答を!
  • 質問No.198591
  • 閲覧数437
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 2% (1/34)

javascriptで現在のテーブルの位置を知ることは可能なのでしょうか?また各セルの位置情報も同じく知ることはできるのでしょうか?(幅や高さではなく、絶対位置です) よろしくご指導お願い致します。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル9

ベストアンサー率 66% (40/60)

Netscape 4.x の場合ですと、layer タグで括ってレイヤーの left プロパティと
top プロパティで代用するしかないと思います。

<layer id="table1">
<table align="center">
<tr>
<td>あ</td>
<td>い</td>
</tr>
<tr>
<td>う</td>
<td>え</td>
</tr>
</table>
</layer>
<form onsubmit="return false">
<input type="button" onclick="alert( '左 : ' + document.layers[ 'table1' ].left + 'px、上 : ' + document.layers[ 'table1' ].top + 'px' )" value="テーブルの位置を取得">
</form>

しかし、困った事に左位置が期待している値にならないようです。
※ テーブルの横幅は(表示されている幅に関わらず)
「 ウィンドウ幅いっぱい 」-「body 内側のマージン値」となっている模様

更に困った事に、レイヤーは Netscape 6 で廃止されています。

Netscape 6.x の場合ですと、以下のようにすると取得できます。

<table id="table1" align="center">
<tr>
<td>あ</td>
<td>い</td>
</tr>
<tr>
<td>う</td>
<td>え</td>
</tr>
</table>
<form onsubmit="return false">
<input type="button" onclick="alert( '左 : ' + document.getElementById( 'table1' ).offsetLeft + 'px、上 : ' + document.getElementById( 'table1' ).offsetTop + 'px' )" value="テーブルの位置を取得">
</form>

これで取得してもやはり左位置は期待している値にはなりません。
このサンプルは IE 6 でも動作しますが、その場合の左位置は期待した値になりますので、
やはり、Netscape ではテーブルの実際の幅は
「 ウィンドウ幅いっぱい 」-「 body 内側のマージン値 」として扱われているようです。
お礼コメント
sakotec

お礼率 2% (1/34)

丁寧な回答ありがとうございました!Netscapeはちょっと違うんですね。他の対応を考えます。
投稿日時 - 2002-01-17 15:45:09
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル9

ベストアンサー率 66% (40/60)

左上点の位置でよければ、offsetLeft プロパティで左からの位置が、 offsetTop プロパティで上からの位置が取得できます。 <table id="table1" align="center"> <tr> <td>あ</td> <td>い</td> </tr&g ...続きを読む
左上点の位置でよければ、offsetLeft プロパティで左からの位置が、
offsetTop プロパティで上からの位置が取得できます。

<table id="table1" align="center">
<tr>
<td>あ</td>
<td>い</td>
</tr>
<tr>
<td>う</td>
<td>え</td>
</tr>
</table>
<form onsubmit="return false">
<input type="button" onclick="alert( '左 : ' + document.all[ 'table1' ].offsetLeft + 'px、上 : ' + document.all[ 'table1' ].offsetTop + 'px' )" value="テーブルの位置を取得">
</form>
補足コメント
sakotec

お礼率 2% (1/34)

ご回答ありがとうございます。補足質問なのですが、Netscape4の場合offsetLeftが使えないのですが、なにか代用のものがあればお教えください。よろしくおねがいします。
投稿日時 - 2002-01-16 08:21:37


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ