実現したいこと
文書の脚注を、overflow:auto 指定した div 要素を使ってポップアップ表示しています。
ときに、深い位置にある情報を示したいことがあり、ポップアップ時にポップアップウィンドウを指定位置 id までスクロールさせたいのですが。
発生している問題・分からないこと
親ウィンドウのスクロールはできるのですが、親ウインドウ内の div 要素で、window に相当するオブジェクト?が何かわかりません。
該当のソースコード
たとえば window.$('body').animate({scrollTop:window.$(id).offset().top-10},200); のように指定したいと思っています。
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
いろいと試した範囲では、親ウインドウの方がスクロールしてしまいました。表示したいところは示すことができているのですが、これでは役にたたないので。
補足
ポップアップの動作は css の visibility を操作して行っています。
質問内容があいまいですポップアップとは具体的にどういう仕組みをさしているのでしょうか?
説明があいまいですみません。
本文中に、*で脚注がつけられています。短いものは同じファイル内の div 要素に記述しておいて、* がクリックされた際、位置を取得して css の visibility を visible にすることでポップアップを実現しています。
注が長かったり複数箇所から参照される場合、別ファイルにしておいて、それを append で作成した新規 div 要素に読み込み、以下は同じ流れて表示します。
で、その注が違う箇所から参照されるとき、直接に必要なのはポップアップした表示の中で下の方にあり、スクロールしないとたどりつけない場合があるのです。そこでその位置に id を埋め込んでおいて、ポップアップと同時にその位置までスクルールさせたい、と考えた次第です。
jquery を使っていますが、全体像を理解しているわけではなく、事実上コピペと試行錯誤でしのいでいる状況です。
主ウインドウとは独立した別ウインドウで資糧を表示することもあるのですが、そのときはサブウインドウの window を w として
w.$('body').animate({scrollTop:w.$(id).offset().top-10},500);
のようにして実現できました。同じようにやろうとしたのですが、主ウインドウの中のポップアップウインドウでは当然 window が主ウインドウそのものを指してしまい、div 要素内に手が届きません。ひょっとしたら、簡単に window に置き換えられるような何かがあって、上の w をそれに置き換えたらすむのかなと思った次第です。
これで伝わりますでしょうか。
回答2件
あなたの回答
tips
プレビュー