javascript初心者です。
特定要素の相対座標位置を取得したく、getBoundingClientRect()を使用しているのですが、firefox2.0でも、見れるようにしなくてはいけなくて、その場合、getBoundingClientRect()がfirefox2.0では使えません。
それに変わる関数などを探していましたが、わからなかったので、下記のソースを
var element = document.getElementById("sample");
var elementY = element.getBoundingClientRect()
以下のように変えてみました。
var element = document.getElementById("sample");
var elementY = element.offsetTop - window.screenY;
ですが、予期した値が取得できません。
ページ内で、スクロールすると、elementYが変わるようになっています。
どう書き換えたらよいか、どなたかご教授お願いいたします。
No.2ベストアンサー
- 回答日時:
No.4
- 回答日時:
下記URLが参考になると思います。
エレメントの座標取得 ~スクロール要素~ - 左脳Script
http://n-yagi.0r2.net/script/2009/06/post_14.html
anything from here offsetLeft,offsetTop,offsetWidthそしてoffsetHeight──静的配置要素の絶対位置を確実に取得する方法について
http://hkom.blog1.fc2.com/blog-entry-503.html
エレメントの大きさと位置を測定する
http://msdn.microsoft.com/ja-jp/library/Cc392317
.1 The offsetParent, offsetTop, offsetLeft, offsetWidth, and offsetHeight attributes - CSSOM View Module
http://www.w3.org/TR/cssom-view/#offset-attributes
element.offsetTop - MDC
https://developer.mozilla.org/en/DOM/element.off …
offsetTop Property (A, ABBR, ACRONYM, ...)
http://msdn.microsoft.com/en-us/library/ms534303 …
element.offsetLeft - MDC
https://developer.mozilla.org/en/DOM/element.off …
offsetLeft Property (A, ABBR, ACRONYM, ...)
http://msdn.microsoft.com/en-us/library/ms534200 …
No.3
- 回答日時:
何を基準にした相対座標ですか?
親要素を基準にしているなら、
element.offsetTopか
element.clientTop-element.parentNode.clientTopで良いと思います。
http://msdn.microsoft.com/ja-jp/library/cc391784 …
http://msdn.microsoft.com/ja-jp/library/cc392317 …
JScriptですが、多くのブラウザがサポートしています。
border-widthの扱いにブラウザ依存があるようですので、borderを付けている場合は注意が必要です。
position:absoluteになっていると、offsetTopかclientTopのどちらか(または両方)が不定になるようで、上手く取得できませんでした。
style.topやstyle.leftを指定せずに、position:absoluteを指定したときに要素の位置を取得できる方法があれば私も知りたいです。
すみません、なぜかわかりませんが、昨日は、お礼する、補足するで、コメントが書き込めず、遅くなりました。
相対指定は、ユーザーが見ているブラウザの(ツールバーなどを除く)可視領域の左上を基準とした位置を基準としています。なので、縦にスクロールすれば、基準位置は変わります。わかりますでしょうか。
で、結局、自分でも調べた結果、
object.offsetTop - window.pageYoffset
これで、firefox2にも対応して、object.getBoundingClientRect()に変わる値が取得できました。
borderに関することは知りませんでした。ぜひ参考にさせていただきます。
No.1
- 回答日時:
そのようなメソッドも知らない、初心者ですが…
getBoundingClientRect()はfx3からの機能みたいですね。
https://developer.mozilla.org/Ja/DOM/Element.get …
このあたりを参考に見てみると
http://jsgt.org/mt/archives/01/001003.html
このへんがあやしそう (仕様の違いは確認してません)
https://developer.mozilla.org/en/DOM/document.ge …
とても、すばやい回答をありがとうございました。なんとか解決しましたが、ブラウザで、使える使えない関数があるというのは、今回かなり思い知らされました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScript を使ってpkゲームを...
-
<a>タグのテキストを取得
-
ActiveXobjectが作成できない
-
モーダルダイアログウィンドウ...
-
javascript 特定のタグのidの存...
-
「nullまたはオブジェクトでは...
-
DIV内のDIV要素を移動する。
-
任意の座標をクリックさせるには
-
RadioButtonListの表示制御
-
addEventListenerで
-
DOMMouseScrollを使って特定のI...
-
イベントに適切な値が伝わらない
-
同じIDで定義した要素の配列を...
-
C#OpenCv V4にのエラーに関する...
-
functionから別のfunctionを実...
-
ジェネレーターの作り方
-
ASP.NET MVCでObjectをjsに渡す
-
window.openでタイトル名の指定
-
undefinedを表示させない方法は...
-
jspからjavascriptの変数引継ぎ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ActiveXobjectが作成できない
-
<a>タグのテキストを取得
-
重複しないくじの作り方がわか...
-
任意の座標をクリックさせるには
-
javascriptでCSVを呼出しvlookup
-
innerHTML実行後のイベント
-
HTML:Tableタグに対し、JavaScr...
-
onchangeイベントを使ってspan...
-
WordPressのコンタクトフォーム...
-
appendChildがieだとできない??
-
配列の大括弧と丸括弧はどう違う?
-
JavaScriptでオブジェクトを取...
-
【Tabキー】特定の範囲内だけで...
-
div要素内の全input要素をdisable
-
問題はbind の付いたリスナーを...
-
モーダルダイアログウィンドウ...
-
テキストボックスがブランクの...
-
javascript 特定のタグのidの存...
-
日本語入力の禁止
-
javascriptで編集可能不可能の...
おすすめ情報