В ссылку должен быть обернут <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]. |
В ссылку должен быть обернут <div id="scr">
Спасибо большое! Все получилось, работает!)
|
Цитата:
|
Если я правильно понимаю определение плагина, то я не планировал слайдер писать как плагин. Лезть я в него больше не буду, изображения там тоже меняться не будут, по крайней мере в ближайшее время.
|
Цитата:
Да бог с ним, пусть не на плагин вы нацелились и даже ООП в перспективе не намечается. Пусть чисто процедурный подход, все равно, такие вещи как входные параметры - список файлов/адресов/etc, объект который есть контейнер слайдера, нужно передавать в процедуру. Пусть даже чисто теоретически - есть конфликт, сменили id или пришлось использовать класс, уже придется влезать в процедуру. Собственно и в вашем слайдере не так сложно получить параметры извне, а чтобы вообще не лезть в код слайдера уж точно длительное время, сделать и добавление контейнеру слайдера необходимой "обвязки". |
При чем тут подход. Легче легкого захотеть два или больше слайдера. И тогда придется размножать их коды, а не передавать данные на входы.
|
Цитата:
|
| Часовой пояс GMT +3, время: 14:02. |