Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 24.08.2016, 01:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

В ссылку должен быть обернут <div id="scr">, а значение берется из массива по индексу указанному в frame. Но переход будет в таком случае и по щелчку на кнопках навигации. Самое простое решение, это перенести их в aside.

<script> 
var slider = {
    slides : [['build.jpg','url1'],['service.jpg', 'url2'],['modern.jpg','url3'],['support.jpg','url4']],
    frame:0, // текущий кадр для отображения - индекс картинки из массива
    set: function() { // установка нужного фона слайдеру
        var o = document.getElementById("scr");
        o.style.backgroundImage = "url("+this.slides[this.frame][0]+")";
        o.parentNode.href = this.slides[this.frame][1];
    },
    init: function() { // запуск слайдера с картинкой с нулевым индексом
        this.set();
    },
    left: function() { // крутим на один кадр влево
        this.frame = !this.frame ? this.slides.length-1 : this.frame - 1;
        this.set();
    },
    right: function() { // крутим на один кадр вправо
        this.frame = this.frame == this.slides.length-1 ? 0 : this.frame + 1;
        this.set();
    }
};

//.....
</script>     
</head> 

<body>
<aside>
    <a href="">
        <div id="scr"></div>
    </a>
    <div id="bleft" onclick="slider.left()">PREV</div>
    <div id="bright" onclick="slider.right()">NEXT</div>
</aside>


Можно менять и url страницы, но для этого нужно установить обработчик щелчка по "scr", в котором и указывать переход на slider.slides[slider.frame][1].

Последний раз редактировалось laimas, 24.08.2016 в 08:02.
Ответить с цитированием
  #12 (permalink)  
Старый 25.08.2016, 22:05
Новичок на форуме
Отправить личное сообщение для maxpopov89 Посмотреть профиль Найти все сообщения от maxpopov89
 
Регистрация: 22.08.2016
Сообщений: 5

В ссылку должен быть обернут <div id="scr">
Спасибо большое! Все получилось, работает!)
Ответить с цитированием
  #13 (permalink)  
Старый 26.08.2016, 03:20
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от maxpopov89
Все получилос
Я бы не стал так радоваться. ) Если писать слайдер как плагин, то массив описывающий слайды уж точно не должен быть в объекте, его нужно передавать плагину. Иначе придется постоянно лезть в код плагина для правок.
Ответить с цитированием
  #14 (permalink)  
Старый 26.08.2016, 18:31
Новичок на форуме
Отправить личное сообщение для maxpopov89 Посмотреть профиль Найти все сообщения от maxpopov89
 
Регистрация: 22.08.2016
Сообщений: 5

Если я правильно понимаю определение плагина, то я не планировал слайдер писать как плагин. Лезть я в него больше не буду, изображения там тоже меняться не будут, по крайней мере в ближайшее время.
Ответить с цитированием
  #15 (permalink)  
Старый 27.08.2016, 02:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от maxpopov89
Лезть я в него больше не буду, изображения там тоже меняться не будут, по крайней мере в ближайшее время.
А ближайшее время как и зима, пришло нежданно.
Да бог с ним, пусть не на плагин вы нацелились и даже ООП в перспективе не намечается. Пусть чисто процедурный подход, все равно, такие вещи как входные параметры - список файлов/адресов/etc, объект который есть контейнер слайдера, нужно передавать в процедуру. Пусть даже чисто теоретически - есть конфликт, сменили id или пришлось использовать класс, уже придется влезать в процедуру.
Собственно и в вашем слайдере не так сложно получить параметры извне, а чтобы вообще не лезть в код слайдера уж точно длительное время, сделать и добавление контейнеру слайдера необходимой "обвязки".

Последний раз редактировалось laimas, 27.08.2016 в 02:54.
Ответить с цитированием
  #16 (permalink)  
Старый 27.08.2016, 08:36
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

При чем тут подход. Легче легкого захотеть два или больше слайдера. И тогда придется размножать их коды, а не передавать данные на входы.
Ответить с цитированием
  #17 (permalink)  
Старый 27.08.2016, 12:13
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от warren buffet
И тогда придется размножать их коды
Хоть дюжину, если слайдер один и тот же, то "размножать код" его не требуется. Найдите все таки в сети уроки по созданию слайдера, ей богу будет полезно.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Внутри разворачивающегося по клику DIVа не работают ссылки JavaScriptNoob Элементы интерфейса 2 17.11.2015 00:01
Как открыть все сгенерированные ссылки с общим id в списке одним кликом? malefikus13 Общие вопросы Javascript 12 22.07.2015 08:52
В слайдере не работают ссылки EZhizn Элементы интерфейса 5 30.03.2015 09:01
Ссылки внутри другой ссылки Madgeniy Events/DOM/Window 4 11.08.2012 14:58
ссылки получали стиль "visited" только на время сессии alexandr_poskrobka Серверные языки и технологии 7 10.03.2010 08:48