Галлерея изображений
Ссылка
Нажмите на менюшку --> фото--> там 3 фотки, кликните на первую появится она же в увеличенном изображении, не могу понять как сделать так чтобы при клике на вторую фотку появлялась вторая фотка... чтобы это реализовывалось через одну функцию... а то так для каждой фотки функции писать чтото не очень хорошее решение я так думаю... вот скрипт который отвечает за открытие большого изображения при клике на маленькое
function foto(){
document.getElementById("img_main").src = images[0]; (Так вставляется изображение из массива номером 0 см. ниже функцию 'number')
var bg=document.getElementById('background');//Получили div с id bg
button=document.getElementById('test');// Копка на которую кликать
exit=document.getElementById('close');//Кнопка на закрытие
paper=document.getElementById('wrapper');
many=document.getElementById('hoverClose');
bg.style.display='block';
exit.style.display='block';
paper.style.display='block';
many.style.display="block";
many.onclick= function closer(){
bg.style.display='none';
exit.style.display='none';
paper.style.display='none';
many.style.display='none';
};
}
вот функция 'number' для смены изображений при клике
var images = new Array();
var i = 0;
images[0] = 'images/1.jpg';
images[1] = 'images/3.jpg';
images[2] = 'images/4.jpg';
function lol() {
i = i-1;
if (i < 0) {
i = images.length-1;
}
document.getElementById("img_main").src = images[i];
};
function viewImages() {
i = i+1;
if (i == images.length) {
i = 0;
}
document.getElementById("img_main").src = images[i];
};
<div id ="test"class="gallery" onclick="foto()"><div class="inline"><div id ="zoomer"class="zoom"><img id="test2"src="images/search.png"/></div><img id="test2"src="images/1.jpg"/></div></div> HELP! |
не проще ли сделать все на готовом lightbox'e?
|
да хотелось бы свой создать)) я же учусь... это у меня не заказ если бы делал сайт за деньки то конечно бы использовал готовое решение, а тут хочется своё когда делал свой лайтбокс не думал что такая проблема возникнет((((
|
есть какие нибудь мысли Viral?)
|
на второй фотографии у вас стоит onclick="foto2();"
функции foto2() у вас нет, поэтому оно и не работает. вам надо передавать в функцию foto() переменную с id дива, из которого надо вытащить фотографию, или переменную с именем файла. вообще вы очень интересно, на мой взгляд написали)) не хочу оскорбить, но если вдруг вы не в курсе, переменная в функцию передается так:
<script>
function alertVar(peremennaya){
alert(peremennaya);
}
</script>
<input type="button" onclick="alertVar('передаваемая переменная')" value="clickme">
|
function foto2(){
foto();
document.getElementById("img_main").src = images[1];
};
функцию 'foto2()'; я не написал специально так как если выбирать такой метод то для каждого изображения нужна свой отельная функция 'foto3()'; 'foto4()';... в скрипте выше таким образом я добиваюсь что при клике появляется лайтбокс с нужной фоткой , но почемуто рпиходится кликать два раз по кнопке next... НО это плохой метод так как прийдется использовать много функций((( хотелось бы чтобы всё в одной реализовывалось щас буду пробовать то о чем ты написал |
function foto(el){
var imgSrc = el.getElementsByTagName('img')[1].getAttribute('src');
document.getElementById("img_main").src = imgSrc;
var bg=document.getElementById('background');//Получили div с id bg
button=document.getElementById('test');// Копка на которую кликать
exit=document.getElementById('close');//Кнопка на закрытие
paper=document.getElementById('wrapper');
many=document.getElementById('hoverClose');
bg.style.display='block';
exit.style.display='block';
paper.style.display='block';
many.style.display="block";
many.onclick= function closer(){
bg.style.display='none';
exit.style.display='none';
paper.style.display='none';
many.style.display='none';
};
}
Вот пример для вашей ситуации, но можно гораздо меньшей кровью обойтись и меньшим кодом.. onclick="foto(this)" - везде поставьте вместо foto(), foto2() и т.д. И нельзя присваивать нескольким элементам одинаковые id |
ДА работает, Viral только проблема в том что когда кликаешь кнопку Nazad или Next то по первому клику ничего не происходит а когда второй раз кликаешь то норм работает Ссылка
var images = new Array();
var i = 0;
images[0] = 'images/1.jpg';
images[1] = 'images/3.jpg';
images[2] = 'images/4.jpg';
function lol() {
i = i-1;
if (i < 0) {
i = images.length-1;
}
document.getElementById("img_main").src = images[i];
};
function viewImages() {
i = i+1;
if (i == images.length) {
i = 0;
}
document.getElementById("img_main").src = images[i];
};
|
это потому что i после того, как функция foto() отработает, остается неизменным.
|
блин я вообще ничего не понимаю надо за учебники садиться((((
|
| Часовой пояс GMT +3, время: 04:12. |