• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jQueryでモーダルウインドウ、ie6の挙動)

jQueryでモーダルウインドウ、ie6の挙動について

このQ&Aのポイント
  • jQueryを使用して制作したLightBox風のモーダルウインドウが、ie6では正しく動作しない問題が発生しています。
  • ie6ではcssのpositionプロパティのfixedに対応していないため、ボタンとウインドウを擬似的に固定配置していますが、一部の動作が正常に動作しないことがあります。
  • モーダルウインドウを閉じて再度開くと、ウインドウの高さが相対値指定の80%にならない問題や、画面が延々と下にスクロールできてしまう問題が発生します。

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

#1、#2です。 >ボタンを押してoverLayerを表示させた後にブラウザを縮めて >overLayerを少しでもブラウザの表示エリア外にすると~ ブラウザのリサイズ(サイズ変更)によるイベントがありますので、リサイズ時には、もう一度表示サイズの調整を行なうようにすればよろしいかと思いますが? (c.f. onresize)

whosfoo
質問者

お礼

何度も目を通していただきありがとうございます。 そう言う処理で制作したいと思います。 参考になりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

#1です。 >無限スクロール現象が起きてしまうようです。 >これの回避方法がどうにも見つかりません。 IE6で、#1の方法でスクロールが起きないことを確認していますが…?

whosfoo
質問者

お礼

度々ご回答ありがとうございます。 教えて頂いたソースに書き換えたものを上げました↓ http://foofoo77.web.fc2.com/imagechange/light_animate4a.html ちょっと言葉足らずだったようですみません。 ボタンを押してoverLayerを表示させた後にブラウザを縮めて overLayerを少しでもブラウザの表示エリア外にするとスクロールが止まらない現象が発生してしまいます。 この現象を回避する方法はなさそうなのでposition指定をbottomからするしかないかなと思っています。

全文を見る
すると、全ての回答が全文表示されます。
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

回答がないみたいなので。 jqueryもExpressionもよくわかってないので、かなりいい加減ですが… 少しいじってみたところ、どうやらhide()にした時に要素がもとの高さに戻ってしまっているみたい。 次に表示するときにもレンダリングで再計算されないらしく、body全体の高さが高くなってしまうためにスクロールしっぱなしということのようですね。 最初からwindowを小さくしておいて表示させると、1回目は(多分)意図通りに表示されると思いますので、やっぱりhide()なのかなぁ? とはいっても、1回目がOKということは、イニシャライズ時のhide()では悪影響が出ていないことになるので、イベント処理中のhide()のみ?(そんなこともなさそうですが…) IEのバグなのかjqueryなのか、はたまたExpression(←多分これは関係なさそう)の影響なのかよくわかりませんが、とりあえず高さをスクリプトで再設定するようにしてあげれば、ご質問の現象は起こらなくなるみたいです。 (せっかくCSSで設定している意味がなくなっちゃいますけど)  $("#switch").toggle(function(){   $("#glayLayer").show();   $("#overLayer").show(); の部分を  $("#switch").toggle(function(){   $("#glayLayer").css("height", $(window).height()+"px").show();   $("#overLayer").css("height", ($(window).height()*4/5|0)+"px").show(); とすれば高さが反映されるようです。(←当たり前だけれど。 でも、%指定でしなおしてもダメみたい) イベント処理のhide()の後で同様に指定しておく方法でもいけるみたいなので、なんとなくhide()とIEの相性が悪いのではという気がしますが、よくわかりません。 あんまり納得がいってませんけれど、まぁ、対処療法のひとつとして…

whosfoo
質問者

お礼

ご回答ありがとうございます。 返信遅くなりすみません。 教えて頂いた方法でウインドウの高さの算出はできました。 ie6でposition: abusolite指定で scrollイベントで動的に座標を取得している要素はブラウザの下に出てしまうと無限スクロール現象が起きてしまうようです。 これの回避方法がどうにも見つかりません。 setExpressionはie独自の機能でブラウザが描画をするタイミングでイベントが起こるメソッドのようです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 「jQuery」Lightboxのアニメーションを無くしたい

    フォトギャラリーのホームページを作っています。 サムネイルをクリックしたら、ページ上で写真が拡大表示され、 拡大写真の以外の部分がグレーになるような演出をしたく思っています。 つまりjQueryのLightboxのようにしたいのですが、 Lightboxの「写真を表示するごとに、画像幅に合わせて枠が広がり、 最後にクローズボタン部分が表示される」というアニメーションを無くしたいと思っています。 (シンプルに拡大画像がでてくるのみ、にしたい) このようなことは設定で可能でしょうか? ちなみに「Lightbox」では無く、「ThickBox」というものを使ってみたのですが、 これが理想の動きではあるものの、IE6ですと画像を開いたときに背景のページが 少しずれる、という不具合があります。 Lightboxの設定や他のライブラリ等ご存知でしたら教えていただけないでしょうか? 知識不足のため、説明が拙くすみません。。。 どうぞ宜しくお願いもうしあげます。

  • IEで新しいウインドウがうまく表示されません

    新しいウインドウが開かれるページを見ようとすると 新しいウインドウがうまく表示されません(枠組みしか表示されない) 「中止」「更新」の順にボタン(IE)をクリックすると表示されます。 しかし、ボタンが表示されないJavaスクリプト系のウインドウなどが 表示できないので、いろいろと困っています。 どんなサイトでも例外なく発生しています。 回答よろしくお願いします。 OS Windows98SE IE6

  • IEで別ウインドウ表示ができなくなりました

    いつものようにIEでネットサーフィンをしていたんですが 別ウインドウ表示ができなくなってしまい、困っています。 別ウインドウで表示するリンクをクリックしたときや 既にIEが起動しているときにもう一度IEを開いたときに 今まではちゃんと別ウインドウで出てきたんですが なぜだかそれができなくなってしまい、別ウインドウで表示しようとすると そのページを自動的に閉じて新しく別ウインドウで表示するはずのページが代わりに開かれるようになってしまったようです。 もちろん戻るボタンでも元のページには戻れず、かなり不便になってしまったのですが… 何か良い解決法はありますか?

  • IE7を起動するともう一つIE7のウィンドウがが開いてしまう

    ドスパラノートPC Vista Ultimate IE7 です。 IEを開くと、同時に別のIEウィンドウも開くようになってしまいました。 新たに開いてしまうURLは http://www.skype.com/intl/en/help/guides/ie_addon/?lang=en です。 Skypeを導入したことに起因するだろうということは想像できるのですが解除する方法が分かりません。 スタートボタンからIEを起動すると、自分の設定したホームページが開き、どうじに英語のSkypeサイトの ページが開くのでタスクバーに2つボタンが出現します。そのままもう一つIEを起動すると更に新たに Skypeのページが開くので4つのウィンドウが開いてしまいます。 新規タブででてくれるならまだしも別ウィンドウが表示されて邪魔です。 解除方法が分かる方教えてください。

  • Windows7とIE8では「Internet Explorerではこ

    Windows7とIE8では「Internet Explorerではこのページは表示できません。」と出てしまう。 XPとIE6では表示されていたリンクが、 Windows7とIE8では「Internet Explorerではこのページは表示できません。」 となって空白のページになってしまいます。 これを表示するには、どうしたら良いのでしょうか。

  • jQueryでボックスのサイズ変更

    jQueryで表示済みのボックス要素(div#box)のサイズを変更しています。 ※ 元のサイズは100×100px $("#box").css("width","250px"); $("#box").css("height","250px"); この時、サイズの変更をスムーズにアニメーションさせるようにするには、何か方法があるのでしょうか? イメージとしては、lightbox2のように、画像のサイズによってウインドウがスムーズにアニメーションするアレです。 「このページに書いてあるよ」や「こうすればできるよ」など、情報をお待ちしています。 よろしくお願いします。

  • IE6でページの表示がずれます。

    HTMLで作成したページが、IE7とFirefoxでは、正常に表示されるのですが、 IE6で確認すると、ページの左側部分が全体的に下にずれて表示されます。 CSSを修正したり、手を尽くしてみたのですが修正できません。 何かIE6に正しく表示させるような方法はありますでしょうか。 教えて頂ければ幸いです。

  • jQuery LightBox Plugin動かず

    複数の画像をLightBoxで表示したくて http://shanabrian.com/web/library/jlightbox.php#option のページ参考にテストしてみました。紹介されてるダウンロードページからデータを取得し、 解凍後、css、images、jsディレクトリを適用するファイルと同じディレクトリに設置しました。 そしてJavaScriptおよびCSSをhead内にコピーし a要素にrel="lightbox"を追加 これで完了のはずですが、しかし動作しません。 画像のページが開いてしまいます。なぜ動かないのでしょうか? <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>テスト</title> <link rel="stylesheet" type="text/css" href="css/jquery.lightbox-0.5.css" media="screen" /> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jquery.lightbox-0.5.js"></script> <script type="text/javascript"> $(function() { $('#gallery a').lightBox(); }); </script> </head> <body> <a href="images/sample1.jpg" rel="lightbox"><img src="photos/image1.jpg" width="200" height="300"></a> <a href="images/sample2.jpg" rel="lightbox"><img src="photos/image2.jpg" width="200" height="300"></a> <a href="images/sample3.jpg" rel="lightbox"><img src="photos/image3.jpg" width="200" height="300"></a> </body> </html> お願いします。

  • cssスプライトで作ったボタンがIE6でロールオーバー時に消える

    CSSでロールオーバーするボタンを作りました。(CSSスプライトという手法で作っています) ところが、IE6でのみ、ロールオーバー時に、ボタン画像が消えます。 ためしにjavascriptで先にキャッシュを読み込ませてみましたが、やっぱり消えてしまいました。 どうしたらIE6でも正常に表示できますか?

  • IE7で途中からCSSが利かなくなる

    IE7で、HTML+CSSのファイルを開くと、途中から、CSSが利かなくなってしまいます。 IE6&IE8では、問題なく表示されます。 この現象を解決する方法はあるのでしょうか? よくわからないのですが、データ量が多いページに出ているようです。 また、特定のクラス名などではないようです。 同じクラス名でも、前半は正常に表示されていて、後半はNGになっていました。 よろしくお願いします。 WinXP+IE7

    • ベストアンサー
    • HTML