Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Слайдер на чистом js (https://javascript.ru/forum/dom-window/72710-slajjder-na-chistom-js.html)

dupre 20.02.2018 21:00

Слайдер на чистом js
 
Хочу понять, как можно преобразовать код данного слайдера, чтобы открывался и начал работать в модальном окошке. Конечно есть Lightbox либо fancyBox, но суть не в этом. Хочется понять и разобраться, как это можно сделать именно на чистом js, на примере данного кода. И если например, допустим, будут две или три ссылки на открытие слайдера, где в каждой будет свой набор картинок, под каждую ссылку нужно будет повторять данный код или это будет не грамотным решением? Как такую задачу реализовать грамотно?

<!DOCTYPE html> 
<html>
<head>
	<meta charset="utf-8">
	<title>JS</title>
	<style>
		#slider{
			width: 400px;
		}
		
		#slider img{
			width: 100%;
			height: 300px;
		}
		
		#buttons{
			text-align: center;
		}
	</style>
	<script src="script.js"></script>
</head>
<body>
	<div id="slider">
		<img src="">
		<div id="buttons">
			<input id="btnPrev" type="button" value="<-">
			<input id="btnNext" type="button" value="->">
		</div>
	</div>
</body>
</html>


window.onload = function(){
	
	var images = ['Chrysanthemum.jpg', 'Desert.jpg', 'Jellyfish.jpg', 'Penguins.jpg', 'Tulips.jpg'];
	
	var i = 0;
	var img = document.querySelector('#slider img');
	img.src = 'img/' + images[i];
	
	document.querySelector('#btnPrev').onclick = function(){
		(i > 1) ? i-- : (i = images.length - 1);
		img.src = 'img/' + images[i];
	}
	
	document.querySelector('#btnNext').onclick = function(){
		(i < images.length - 1) ? i++ : i = 0;
		img.src = 'img/' + images[i];
	}
}

рони 20.02.2018 21:05

dupre,
для начала уберите все id, замените на классы потом, сделайте ваше "модальное окно".

dupre 20.02.2018 21:09

рони,
приветствую, рад слышать. А чем плохи id, вразуми пожалуйста.

рони 20.02.2018 21:11

Цитата:

Сообщение от dupre
А чем плохи id

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

рони 20.02.2018 21:15

dupre,
хотя можно менять только массивы картинок

dupre 20.02.2018 21:20

рони,
понятно. А будет ли этот код работать кроссбраузерно? Вообще, как понять кроссбраузерный код или нет? Простой проверкой работы кода в разных браузерах достаточно для понимания? Или есть какие-то более продвинутые вещи для этого?

dupre 20.02.2018 21:21

рони,
"хотя можно менять только массивы картинок", это мне не понятно к сожалению. Можно показать?

рони 20.02.2018 21:30

Цитата:

Сообщение от dupre
Можно показать?

нет. мне неизвестно как вы хотите реализовать свою задумку.

Цитата:

Сообщение от dupre
А будет ли этот код работать кроссбраузерно?

да,и откуда сомнение? не вижу вашем коде ничего проблемного.

dupre 20.02.2018 21:41

рони,
задумка такая: три ссылки на открытие слайдера и в каждой свой набор картинок, и в каждом наборе своё количество картинок. В одной ссылке 3 картинки, во второй ссылке 5 картинок, в третьей 6 картинок.

dupre 20.02.2018 21:43

По поводу кроссбраузерности не то чтобы сомнения, а просто для понимания. Не знаю, как понять: кроссбраузерный какой-либо код или нет.


Часовой пояс GMT +3, время: 09:05.