Галерея из трех колонок с переключением изображений
Я здесь новичок. Не очень разбираюсь в программировании, поэтому, пожалуйста, будьте осторожны со мной;) Единственное, что я не могу заставить работать - это галерея изображений, отображаемая в трех разных столбцах.
Если я копирую и вставляю все из первого столбца (я изменяю только имена классов фоновых изображений), галерея красиво отображается так же, как галерея первого столбца, но она не работает, когда я нажимаю стрелку или рисунок.
Мой вопрос: как изменить идентификаторы изображений или какие идентификаторы я должен изменить, чтобы это работало? В каком файле? Или, может быть, какой-нибудь сценарий javascript сделает эту работу просто отлично?
Пожалуйста, помогите, скоро наступит крайний срок.
Я прилагаю ссылку для кода с одним столбцом, работающим отлично. Как сделать так, чтобы еще две такие работали на одной странице?
clickMenu = function(gallery)
{
var getImg = document.getElementById(gallery).getElementsByTagName("IMG");
var getLi = document.getElementById(gallery).getElementsByTagName("li");
for (var i=0; i<getImg.length; i++) {
getImg[i].onclick=function() {
if ((this.className.indexOf('left-arrow'))!=-1) {
for (var x=getLi.length-1; x>0; x--) {
if ((getLi[x].className.indexOf('chosen'))!=-1) {
getLi[x].className=getLi[x].className.replace("chosen", "");
x--;
if (x>-1) {
getLi[x].className+=" chosen";
if (x>-1 && x<getLi.length-7){
getLi[x].className=getLi[x].className.replace("hide", "");
if ((getLi[x+7].className.indexOf('hide'))==-1)
{
getLi[x+7].className+=" hide";
}
}
}
}
}
}
if ((this.className.indexOf('right-arrow'))!=-1) {
for (var x=0; x<getLi.length-1; x++) {
if ((getLi[x].className.indexOf('chosen'))!=-1) {
getLi[x].className=getLi[x].className.replace("chosen", "");
x++;
if (x<getLi.length) {
getLi[x].className+=" chosen";
if (x>6 && x<getLi.length) {
getLi[x].className=getLi[x].className.replace("hide", "");
if ((getLi[x-7].className.indexOf('hide'))==-1)
{
getLi[x-7].className+=" hide";
}
}
}
}
}
}
}
}
for (var i=0; i<getLi.length; i++) {
getLi[i].onclick=function() {
for (var x=0; x<getLi.length; x++) {
if ((getLi[x].className.indexOf('chosen'))!=-1) {
getLi[x].className=getLi[x].className.replace("chosen", "");
}
}
this.className+=" chosen";
}
}
}
#gallery_rooms {width: 400px;height:auto;display: inline-block;position: relative;margin:0;padding-top:300px;}
#gallery_rooms img.left-arrow {width:10px; float:left;cursor:pointer;margin-left: 2%;margin-top: 4%;}
#gallery_rooms img.right-arrow {width:10px; float:right;cursor:pointer;margin-right: 2%;margin-top: 4%;}
#gallery_rooms ul {list-style:none; padding:0; float:left;margin:0;width:400px; height:auto; display:table-cell; vertical-align:middle; text-align:center;cursor:pointer}
#gallery_rooms ul li {display:inline; width:50px; height:50px; float:left; margin:0 4px; border:1px solid #000; cursor:pointer;}
#gallery_rooms ul li.hide {display:none;}
/* using background images 1 */
#gallery_rooms ul li.th1 {background:url(../images/rooms/single-bedroom/1.jpg);background-size: 150%;}
#gallery_rooms ul li.th2 {background:url(../images/rooms/single-bedroom/2.jpg);background-size: 150%;}
#gallery_rooms ul li.th3 {background:url(../images/rooms/single-bedroom/3.jpg);background-size: 150%;}
#gallery_rooms ul li img {visibility:hidden; display:block; width:50px; height:50px;background-size: 100%;
}
#gallery_rooms ul li span {display:none; position:absolute; left:61px; top:430px; width:411px;font-family:verdana, arial, sans-serif; color:#666; font-size:11px; line-height:15px; text-align:justify;}
#gallery_rooms ul li b {color:#444;}
#gallery_rooms ul li.chosen {border-color:#fff; cursor:default;}
#gallery_rooms ul li.chosen div {position:absolute; left:0; top:0; width:400px; height:auto; background:#444; border:1px solid #000; border-width:1px 1px 0 1px;}
#gallery_rooms ul li.chosen div i {width:400px; height:auto; display:table-cell; vertical-align:middle; text-align:center;}
#gallery_rooms ul li.chosen div i img {visibility:visible; width:auto; height:auto; border:1px solid #aaa; margin:0 auto;}
#gallery_rooms ul li.chosen span {display:block;}
<body onload="clickMenu('gallery_rooms')">
<article class="one-third promo">
<div id="gallery_rooms">
<ul>
<img class="left-arrow" src="images/ico/arrow-left.png" alt="left-arrow" title="" />
<li class="chosen th1"><div><i><em></em><img class="start" src="http://www.cssplay.co.uk/menu/trees/t1.jpg" title="" alt="" /> </i></div>
</li>
<li class="th2"><div><i><em></em><img src="http://www.cssplay.co.uk/menu/trees/t2.jpg" title="" alt="" /></i></div>
</li>
<li class="th2"><div><i><em></em><img src="http://www.cssplay.co.uk/menu/trees/t3.jpg" title="" alt="" /></i></div>
</li>
<img class="right-arrow" src="images/ico/arrow-right.png" alt="right-arrow" title="" />
</ul>
</body>
1 ответ
Решено, не закрывая тег div, и я добавил только два разных div gallery_rooms и назвал их отдельно.