Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 25.07.2010, 09:09
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от ber104
А можно ли сделать чтобы они назад шли, предыдущие показывали?
а сам что-нибудь сделать не хочешь?
Ответить с цитированием
  #12 (permalink)  
Старый 25.07.2010, 09:47
Интересующийся
Отправить личное сообщение для ber104 Посмотреть профиль Найти все сообщения от ber104
 
Регистрация: 06.05.2010
Сообщений: 11

Сообщение от x-yuri Посмотреть сообщение
а сам что-нибудь сделать не хочешь?
Если бы я знал как...
Ответить с цитированием
  #13 (permalink)  
Старый 26.07.2010, 00:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

может конечно есть варианты и поинтереснее )))
function nextImage(a) {
    if (!nextImage.images) {
        nextImage.images = ["1.png", "2.png", "3.png", "4.png"];
        if (nextImage.images.length > 2) nextImage.images = nextImage.images.concat(nextImage.images.slice(1, nextImage.images.length - 1).reverse());
        nextImage.i = 0
    }
    nextImage.i = (nextImage.i + 1) % nextImage.images.length;
    a.src = nextImage.images[nextImage.i]
};
Ответить с цитированием
  #14 (permalink)  
Старый 27.07.2010, 20:32
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

ну я бы тогда как-то так сделал, например, с помощью mootools
var Images = new Class({
    Implements: Options,

    initialize: function( options ){
        this.setOptions(options);
        var self = this;
        this.options['prev-link'].addEvent('click', function(){
            return self.prev.call(self);
        });
        this.options['next-link'].addEvent('click', function(){
            return self.next.call(self);
        });
    },

    next: function(){
        this._i = (this._i + 1) % this.options['images'].length; 
        this.options['img'].src = this.options['images'][this._i];
    },

    prev: function(){
        this._i--;
        if( this._i < 0 )
            this._i = this.options['images'].length-1;
        this.options['img'].src = this.options['images'][this._i];
    }
});


причем, если немного порефакторить, можно написать так
initialize: function( options ){
    ...
     this.options['prev-link'].addEvent('click', this.prev.of(this));
     this.options['next-link'].addEvent('click', this.next.of(this));
},

а у тебя рони как-то и мутно получилось, и не то, что хотел ТС (ну или я его неправильно понял)

Сообщение от ber104
Если бы я знал как...
с таким подходом и не узнаешь
Ответить с цитированием
  #15 (permalink)  
Старый 28.07.2010, 00:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

x-yuri,
скрипт показывает бесконечную цепочку
при 2 картинках 2,1,2,1,2
при 3 картинках 2,3,2,1,2,3,2,1,2,3
при 4 картинках 2.3,4,3,2,1,2,3,4,3,2,1,2 и т.д
картинка номер 1 уже стоит изначально -- в задании было "А можно ли сделать чтобы они назад шли, предыдущие показывали?"
то есть сначала картинки показываются вперёд потом назад -- всё логично? или как?
а скрипт поясню что делает берёт содержимое между крайними элементами массива - меняет порядок и добавляет в массив получеться замкнутая цепочка
было 1,2.3,4,5 взяли 2,3,4 изменили порядок стало 4,3,2 добавили в масив получилось 1,2.3,4,5,4,3,2
считываем элементы массива по порядку - получаем 1,2.3,4,5,4,3,2 1,2.3,4,5,4,3,2 1,2.3,4,5,4,3,2
фото показываются от 1 до 5 потом от 5 до 1
незнаю стали ли понятнее от моего обьяснения )))

Последний раз редактировалось рони, 28.07.2010 в 00:48.
Ответить с цитированием
  #16 (permalink)  
Старый 28.07.2010, 01:35
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от рони
незнаю стали ли понятнее от моего обьяснения )))
вот я именно об этом, и пользовательский интерфейс, и реализация, и объяснение немного нестадартны/неочевидны/могли бы быть проще. Я твое решение понял, просто я исходил из того, что задача - не теоретического плана и ТС не однозначно сформулировал, что ему нужно. Какой смысл выдавать пользователю картинки в твоем порядке? Кроме того, раз у нас есть состояние, а функций уже две, я создал класс
Ответить с цитированием
  #17 (permalink)  
Старый 28.07.2010, 02:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от x-yuri
Какой смысл выдавать пользователю картинки в твоем порядке?
Сообщение от ber104
Подскажите пожалуйста как сделать чтобы при нажатие на кнопку, картинка менялась на следующею? И как только дойдешь до последний картинки, все начиналось заново.
Сообщение от ber104
А можно ли сделать чтобы они назад шли, предыдущие показывали?
так что порядок показа от 1 к последней и от последней к первой не я придумал )))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Три меняющиеся картинки viktod Ваши сайты и скрипты 49 23.03.2010 04:25
Получение координат от картинки EmDmAl Events/DOM/Window 4 08.11.2009 14:34
Смена картинки (бекграунд дива ) при событии (нажатие клавиш или клавиши и мыши) Monster Events/DOM/Window 5 01.11.2009 01:16
Как изменить размер картинки? Mihail Общие вопросы Javascript 1 25.10.2009 13:42
Смена картинки при перезагрузке + наведении Мария Элементы интерфейса 2 22.08.2009 14:57