Одним из способов было бы просто изменить атрибут src
изображений на основе нажатой пиктограммы.
Для этого вы можете присвоить каждому эскизу идентификатор, например:
<div class="indexTiles col-md-6 portfolio1 thumbnail" id="1"></div>
<div class="indexTiles col-md-6 portfolio2 thumbnail" id="2"></div>
<div class="indexTiles col-md-6 portfolio3 thumbnail" id="3"></div>
<div class="indexTiles col-md-6 portfolio4 thumbnail" id="4"></div>
Затем в вашем Javascript вы можете связать каждый идентификатор со списком источников изображений, используя ассоциативный массив:
var images = {
"1": ["image1.png", "image2.png", "image3.png"],
"2": ["image4.png", "image5.png", "image6.png"],
"3": ["image7.png", "image8.png", "image9.png"],
"4": ["image10.png", "image11.png", "image12.png"],
}
Наконец, в вашем обработчике событий onclick
вы можете получить доступ к нужному изображению составьте список с помощью images[id]
, где id
- идентификатор изображения, по которому щелкнули, и измените атрибуты src
трех изображений, чтобы они соответствовали трем элементам списка.
Надеюсь, это даст вам хороший результат. начало!
Редактировать: Чтобы быть более точным c, в обработчике onclick
миниатюр вы бы сделали что-то вроде этого:
$(".thumbnail").click(function() {
//the ID of the thumbnail clicked (`this` here points to the button that was clicked)
var thumbnail_id = this.id;
//list of the right images (based on which button was clicked)
//e.g. if button 1 was clicked, imagesToLoad = ["image1.png", "image2.png", "image3.png"]
var imagesToLoad = images[thumbnail_id];
//looping over the thumbnail images and changing their `src` attributes
//so the first image gets associated with the first image URL of the list, the second with the second, etc.
$(".carousel-item img").each(function(index, element) {
element.src = imagesToLoad[index];
//or if you used CSS's `background-image` instead of `src`
element.style.backgroundImage = `url(${imagesToLoad[index]})`
});
});