2012-05-10 7 views
3

私は、音楽、写真、ビデオをホストするウェブサイトに取り組んでいます。私は現在4ページ、タイトルページ、音楽ページ、ビデオページ、画像ページを持っています。これはうまくいきますが、同時に音楽を再生したり、写真を見ることができるようにしたいと考えています。これを行うために、私はdiv内にそれぞれの元のページを記述するクラス名を持つ1つのHTML文書を作成しました。次に、呼び出されたときに各divを表示および非表示するjavascript関数を作成したので、ページは4ページのように動作しますが、そうではありません。だから音楽プレイヤーを開いたままにしておきながら、各メディアタイプ間を行き来できるようにすることで、音楽プレイヤーを開いたままにしておくフッター部に音楽プレーヤーを埋め込んだ。ここに問題があります。これが完了すると、ページが開いたときにイメージのdivが最初に表示されていない限り、自分のイメージページで使用したイメージ拡大ツールのjquery関数が正常に機能しなくなりました。メディアタイプを切り替えるだけで、写真を拡大することができます。タイトル欄が最初に表示されている場合(そうであるように)、画像を拡大して表示しようとすると動作しません。jquery画像拡大鏡を使用するには、画像を最初に表示する必要があるのはなぜですか?

最初に私は外部のJavaScriptライブラリのいくつかが相互に悪影響を及ぼしていたかもしれないと思っていましたが、私は上で説明したことが起こったのですが、なぜ画像が最初のルーペが正しく動作するように表示されるもの

私が使用しているjqueryコードはjQuery Image Magnifyと呼ばれ、Dynamic Driveによって作成されています。

編集:私が隠してdivを表示する方法は、表示するstyle = "display:none"で非表示とスタイル= "display:block"です。

+0

私はあなたがこのプラグインを手に入れようとしている多くのユーザーを見つけることはできないと思います。 –

+0

アドバイスありがとうございますが、特定のプラグインとはあまり関係がないと思います。私はそれを提供したので、人々が望むなら私が話していたことへの言及を得るでしょう。問題がはるかに広い答えを持っていると感じています。 – vdelricco

答えて

2

興味深い質問です。 jQuery Image Magnify関数を実際に表示する必要があるためです。私はプラグインが画像倍率ハンドラなどのためにimageElement.onloadを使用することを喜んで賭けています。画像要素が隠されていると動作しないと思います。

解決策としては、ページが最初に読み込まれたときに画像を表示するように設定してください。左は-9999 pxに設定するか、そんなに愚かでも技術的には「可視」ですが、ユーザーはそれを見てください。次に、画像がロードされた後、拡大されたか、プラグインが何をしていても、そのページが動いているdivの子になるように移動し、負の左の値を取り除きます。

+0

これは完璧に機能しました。役立つ応答に感謝します。 – vdelricco

+0

問題ありません。あなたはこの回答を受け入れて、おそらくそれをアップアップしてくれましたか? :-) –

関連する問題