2014-01-15 3 views
2

У меня есть галерея, которая показывает изображения, а также должна делать навигацию к следующему и предыдущему изображению. Я действительно не знаю, как заставить их работать.Как настроить следующее изображение для отображения?

Структура моей работы в this fiddle.

Мне нужно сделать так, чтобы при нажатии на next он открывает следующее изображение, и когда я нажимаю prev, он открывает предыдущее изображение.

+0

Почему вы не хотите использовать готовые скрипты? – Pinal

+1

@Pinal, вероятно, он хочет узнать что-то новое. –

+0

Да, но путь галереи jsfiddle неверен. Если кто-нибудь будет реорганизовать скрипку, @Essteffan получит только готовую галерею, а не новые навыки в javascript. – Pinal

ответ

1

Я думаю, что вам следует сделать класс '.selected', который вы примените к изображению, которое в настоящее время отображается.

щелкать дальше, переместить выбранный класс к следующему элементу, как это:

$ ('выбран.) RemoveClass (' выбрано ') следующий() addClass (' выбрано');...

Таким образом, вы отслеживаете ровно один элемент во времени и можете показать этот элемент.

В функции GetNext, x.length === 0, ее пустой, потому что его пытаются найти «.popup_img» в „это“, и „это“ есть кнопка, которая была нажата

функция GetNext() { отладчик; var x = jQuery (this) .find ('. Popup_img'); jQuery ('. Popup_img'). Hide();
jQuery ('. Popup_img'). Next ('. Popup_img'). Show();

console.log(x); 
} 

EDIT:

здесь улучшаются дальше и функции предыдущая:

function getNext() { 
    var parent = jQuery(this).closest('.gallery-box-file'); 
    var currentImg = parent.find('.popup_img'); 
    var nextParent = parent.next(); 

    if (nextParent.length) { 
     currentImg.hide(); 
     nextParent.find('.popup_img').show(); 
    } 
} 

    function getPrev() { 
    var parent = jQuery(this).closest('.gallery-box-file'); 
    var currentImg = parent.find('.popup_img'); 
    var nextParent = parent.prev(); 

    if (nextParent.length) { 
     currentImg.hide(); 
     nextParent.find('.popup_img').show(); 
    } 
} 

http://jsfiddle.net/6Q4Va/5/

+0

Привет, CodeToad. Спасибо за сообщение, я думаю об этом, и, как вы можете видеть в скрипке, у больших изображений есть allready вызов класса imgs, но в этой структуре я гость, я скрываю скрытый текущий popup_img и открываю следующий popup_img (ведьма allready содержит кнопку закрытия и кнопка next и prev). Я пробовал свой путь, но мне не повезло. Можете ли вы мне помочь? –

+0

Я пробовал, но ваш код очень трудно понять. Я не совсем уверен, как код пытается реализовать функциональность галереи. – CodeToad

+0

Галерея должна делать 2 вещи: 1) открыть изображение как всплывающее окно (это работает); и 2) если я открою изображение, мне нужно, чтобы я нажал кнопку next/prev, чтобы открыть следующий/предыдущий в том же формате. Моя идея заключалась в том, чтобы скрыть класс pupup_img и открыть next/prev popup_img, где есть изображение –

Смежные вопросы