JQuery плагин для создания слайд-шоу из URL-адресов изображений - PullRequest
0 голосов
/ 01 сентября 2009

Запрос простой, но его сложно найти в Google. Вот требования:

  • У меня есть массив JS с URL-адресами изображений
  • Я не есть поддержка HTML
  • Я хочу, чтобы приличный плагин для слайд-шоу использовал этот массив и дал мне слайд-шоу
  • Слайд-шоу поддерживает использование клавиатуры (бонус)

До сих пор я видел много плагинов для слайд-шоу, которые требуют много сложного HTML и CSS. кажется немного глупым создавать этот html для того, чтобы он в любом случае был преобразован плагином слайд-шоу.

Кроме того, я понятия не имел, насколько плохим может быть код из-за этих плагинов для слайд-шоу. господи!

Ответы [ 4 ]

3 голосов
/ 01 сентября 2009

Вот кое-что, что я быстро собрал (не тестировал вообще - только для идей), на котором вы могли бы развить. Это не должно быть трудно.

var imgs = ['a.png', 'b.png', 'c.png'];

function Slideshow(img_list, container) {
    var self = this;
    var $slides = [];
    var current = { 'ith': 0, '$slide': null };

    function initialize() {
        // Create the images
        img_list.map(function (i) {
            $slides.push($('<img>').attr('src', i).hide().appendTo(container));
        });     

        current.$slide = $slides[0];
        current.ith = 0;

        // Initialize binds (jquery hotkeys or something)
        $(document).bind('keydown', '>', function () {
            // Do stuff
            self.next();
        });

        $(document).bind('keydown', '<', function () {
            // Do stuff
            self.prev();
        });

    };

    this.indexTo = function (i) {
        current.$slide.hide();
        current.$slide = $slides[i];
        current.ith = i;

        if (current.$slide ==== undefined) {
            if (i < 0) {
                current.$slide = $slides[$slides.length - 1];
                current.ith = $slides.length - 1;
            } else {
                current.$slide = $slides[0];
                current.ith = 0;
            }
        }

        // Effects or something else
        return current.$slide.show();
    };

    this.next = function () {
        return self.indexTo(current.ith++);
    };

    this.prev = function () {
        return self.indexTo(current.ith--);
    };

    initialize();
};
1 голос
/ 01 сентября 2009

Не знаю о клавиатурной навигации, но ответ, который я принял на , на этот похожий вопрос должен вас разобраться.

РЕДАКТИРОВАТЬ: только что понял, что это также включает в себя навигацию с помощью клавиатуры. См. , как я это реализовал для справки, если хотите (щелкните вкладку фолио).

0 голосов
/ 01 сентября 2009

Этот плагин jQuery под названием Cycle является одним из самых приятных слайд-шоу, которые я видел (это не тип лайтбокса). Я просмотрел документы, и у него, похоже, нет поддержки клавиатуры и нет возможности использовать массив для изображений, но в нем есть примеры динамического добавления большего количества изображений. В любом случае, судите сами.

0 голосов
/ 01 сентября 2009

Просмотрите некоторые из предыдущих статей / статей на http://www.designfloat.com/ - есть довольно много превосходных примеров jQuery того, что вы пытаетесь сделать.

С уважением,

Рене Пилон

...