送信された開発ギャラリーから、サムストリップの通常のサムネイルに加えて、ドロップダウンリストを使用して画像を変更しているページはめ込みギャラリーを使用していることがわかります。
これは通常のページ内ギャラリーです:http://highslide.com/examples/gallery-in-page.html
このギャラリーは、すべてのHighslideギャラリーと同様に、ページの上部に浮かんでいますが、ページ内ギャラリーにはコードがありますそれが閉じられるのを防ぐために。
これは、古いフォーラムで作成したデモギャラリーです。http://jsfiddle.net/roadrash/y5nZA/onchange
ドロップダウンリストから新しい画像を選択するたび
に、ギャラリーが閉じられることに注意してください。
onchange="document.getElementById(this.options[this.selectedIndex].value).onclick(); hs.close()"
からギャラリーを閉じることができるようにするにonchange
は、ハイスライド設定でこの部分を削除する必要があります。
// Under no circumstances should the static popup be closed
hs.Expander.prototype.onBeforeClose = function() {
if (/in-page/.test(this.wrapper.className)) return false;
}
また、これを追加します。これは、HighslideもESCキーから閉じることができるためです。これは防止したいのです。
// Prevent to close the gallery from ESC key
hs.onKeyDown = function (sender, e) {
if( e.keyCode == 27 ) return false;
};
通常のページはめ込みギャラリーと私のデモギャラリーのこれらの重要な違いにおそらく気づかなかったでしょう。開発ギャラリーの問題は、ドロップダウンリストで新しい画像を選択するたびに実際に新しいギャラリーを開くことです。これは、サムストリップのサムネイルの下にある小さな矢印から確認できます。複数の矢印であってはなりませんが、ドロップダウンリストで新しい画像を選択するたびに、ギャラリーに新しい矢印が追加されます。
私はあなたの開発ギャラリーに似たjsFiddleを作成しました:http://jsfiddle.net/7tSBE/ここでは、ドロップダウンリストを使用して新しい画像を開くときに、使用している画像のサイズが異なるため、ギャラリーが互いに積み重なっていることをさらに簡単に確認できます。(このデモでは、開発ギャラリーのようにonImageClickからトップギャラリーを開くことはできません。)
ここに必要なコードをすべて入れることはできないので、開発ギャラリーに非常によく似た新しいデモギャラリーを作成しました(一番上のギャラリーはonImageClickから開きます)。HTMLマークアップはあなたのものと同じです。重要な変更はハイスライド設定にあり、上記の変更よりもいくつか変更があります。http://jsfiddle.net/roadrash/y5nZA/1/
hs.close();
これは、コードを追加する必要がある部分です(後の行ChangeImage();
)。このコードは私のデモページでは同じようには見えません。
function SetImageSwatchEvents() {
$('#lstOptions').bind('change', function () {
SetImageSwatches(1);
});
$('#lstOptions2').bind('change', function () {
SetImageSwatches(2);
ChangeImage();
hs.close();
});
}