teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

文面修正しました

2017/03/21 03:22

投稿

akabee
akabee

スコア1947

answer CHANGED
@@ -1,8 +1,10 @@
1
- これは「表示しているページ」の一番上の位置を求めることができれば実現できます。
1
+ これはご提示の図の「表示しているページ」の一番上の要素の位置を求めることができれば実現できます。
2
2
 
3
3
  表示しているページの全体の高さを500とします。
4
4
  表示できる範囲は300で、例示して頂いている図では、全体の高さのうち100から400の範囲が見えているとします。
5
5
  このようなときに、ダイアログを100の位置に出したいということで認識は合っていますか。
6
6
 
7
- 上記のようなとき、「表示しているページの一番上の位置」は-100となっているはずです。具体的にはJQuery.position().topで取得できる値がマイナス値になっているはずです。
7
+ 上記のようなとき、「表示しているページの一番上の要素の現在位置」は-100となっているはずです。具体的にはJQuery.position().topで取得できる値がマイナス値になっているはずです。
8
- 勿論、150から450の範囲が見えていれば-150です。やり方は色々とあると思いますが、例えばこの数値を絶対値にするだけでも求める数値として利用できるはずです。
8
+ 勿論、150から450の範囲が見えていれば-150です。やり方は色々とあると思いますが、例えばこの数値を絶対値にするだけでも求める数値として利用できるはずです。
9
+
10
+ 「表示しているページ」の一番上に要素が何も無ければ、何かダイアログ表示用の要素を追加するなどして、スクロール後に現在位置を取得したときにマイナス値が返ってくるようにしてみて下さい。