3

私は音楽、写真、ビデオをホストするWebサイトに取り組んでいます。現在、タイトルページ、音楽ページ、ビデオページ、画像ページの4つのページがあります。これはうまくいきますが、音楽を再生すると同時に写真を見る機能を取り入れたいと思います。これを行うために、説明的なクラス名を持つdiv内の以前の各ページで1つのHTMLドキュメントを作成しました。次に、呼び出されたときに各divを表示および非表示にするjavascript関数を作成したため、ページは4ページのように動作しますが、そうではありません。そこで、音楽の再生中に開いたままになるフッターdivに音楽プレーヤーを埋め込みました。つまり、音楽フッターを開いたまま再生しながら、各メディアタイプを切り替えることができます。ここに問題があります。これを行うと、画像ページで使用した画像拡大鏡のjquery関数が正しく機能しなくなります。ページが開いたときに画像divが最初に表示されない限り。メディアタイプを切り替えても、写真を拡大できるのはそのときだけです。タイトルdivが最初に表示され(想定どおり)、画像を拡大しようとすると、機能しません。

最初は、外部のjavascriptライブラリのいくつかが互いに否定的に相互作用しているのではないかと思っていましたが、上で説明したことに気づきました。今では、画像を最初に表示する必要がある理由がわかりません。正しく動作する拡大鏡。

私が使用しているjqueryコードはjQueryImageMagnifyと呼ばれ、DynamicDriveによって作成されています。

編集:divを非表示にして表示する方法は、style = "display:none"を非表示にし、style = "display:block"を表示することです。

4

1 に答える 1

2

興味深い質問です。おそらく、jQuery Image Magnify関数を実行するには、要素が実際に表示されている必要があるためです。プラグインがimageElement.onload画像拡大ハンドラーなどに使用することは間違いありませんが、画像要素が非表示になっていると機能しないと思います。

解決策としては、ページが最初に読み込まれたときに画像を表示するように設定してみてください。おそらく、左を-9999 pxに設定するか、そのような馬鹿げたものにして、技術的には「表示」されますが、ユーザーには表示されません。次に、画像が読み込まれ、(うまくいけば)拡大された後、またはプラグインが行うことは何でも、そのページがオンになっているはずのdivの子になるように画像を移動し、負の左の値を取り除きます。

于 2012-05-10T19:38:52.427 に答える