ギャラリー コンテンツとして異なる画像セットを切り替える機能を備えたページを構築しようとしています。次のように、2 つの異なる画像セットを切り替える実験を設定しました。
<div id="galleria"></div>
<div class="under-galleria">
<a href=# id="g-play-pause">Play/Pause</a>
<a href=# id="switch">SWITCH</a>
</div>
<script>
//content
var data = [
{
thumb: 'img/thumb.1.jpg',
image: 'img/med.1.jpg',
big: 'img/lrg.1.jpg',
},
{
thumb: 'img/thumb.2.jpg',
image: 'img/med.2.jpg',
big: 'img/lrg.2.jpg',
},
];
var data2 = [
{
thumb: 'img/thumb.3.jpg',
image: 'img/med.3.jpg',
big: 'img/lrg.3.jpg',
},
{
thumb: 'img/thumb.4.jpg',
image: 'img/med.4.jpg',
big: 'img/lrg.4.jpg',
},
];
//left and right arrows control from keyboard
Galleria.ready(function() {
var gallery = this;
gallery.attachKeyboard({
left: gallery.prev,
right: gallery.next,
});
});
//load theme
Galleria.loadTheme('galleria/themes/classic/galleria.classic.min.js');
//configure
Galleria.configure({
thumbnails:'lazy',
lightbox: true,
dataSource:data
});
//on ready functions (lazy load, auto play)
Galleria.ready(function(){
this.lazyLoadChunks(3);
this.play(3000);
});
//run and extend
Galleria.run('#galleria', {
//play/pause toggle
extend: function() {
var gallery = this;
$('#g-play-pause').click(function() {
gallery.playToggle()
});
$('#switch').click(function() {
gallery.destroy({dataSource:data})
gallery.load({dataSource:data2})
});
}
});
</script>
これにより、最初の画像セット「data」がロードされますが、スイッチリンクをクリックすると、最初のセットのみが削除され、2 番目のセット (「data2」) は追加されません。コンソール エラーはなく、悲しい、空のガレリアだけです。splice と push を使用してみましたが、それもうまくいきませんでした...
私がやりたいことは、ガレリアが画像 1 と 2 (データ) をロードし、#switch リンクをクリックすると、画像 1 と 2 を削除し、画像 3 と 4 (データ 2) に置き換えることです。最終的にはそれらを結合できるようにしたいのですが、これは良いスタートです。