Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/54: Рейтинг темы: голосов - 54, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 23.03.2015
Сообщений: 18

Слайдер изображений на чистом JavaScript

02.04.2015, 20:30. Показов 11237. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, очень прошу помощи. Объясните мне пожалуйста на пальцах, логику слайдера на чистом JS. В интернете полно слайдеров, но все они на JQuery, либо очень сложные. Мне нужен простой слайдер, стрелка влево - появляется предыдущее изображение, вправо - следующее, без наворотов. Я совсем недавно изучаю JS, поэтому не совсем понимаю, как это можно реализовать, а в коде сложных слайдеров не могу разобраться за недостатком опыта. Буду очень благодарен за помощь.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.04.2015, 20:30
Ответы с готовыми решениями:

Слайдер на чистом JS
Здравствуйте, изучаю JS, пробую написать простой слайдер, помогите разобраться, что я делаю не так? По задумке на странице набирается...

Слайдер на чистом JS (как привязать dots)
Здравствуйте! не могу привязать точки к слайдеру! Может кто поможет?! <!DOCTYPE html> <html> <head> ...

Слайдер на чистом JS (не могу разобраться с clearInterval)
Здравствуйте помогите разобраться?! У меня имеется слайдер на JS! При клике на кнопку onShowNextBtnClick срабатывает функция intervalSlider...

12
 Аватар для mazahist
35 / 35 / 26
Регистрация: 27.05.2012
Сообщений: 204
02.04.2015, 22:32
собираешь массив всех изображений: ["img1.jpg","img2.jpg"...]
заводишь переменную номера изображения( какое изображение сейчас показывается).
само изображение выводим так:
JavaScript
1
2
3
//...
document.getElementById("slider").src=massiv_izobrajeiy[nomer_izobrajeniya];
//...
На событие клика по кнопке вешаешь обработчик- изменение номера изображения( напр. nomer_izobrajeniya++). Все, простейший слайдер готов
1
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
03.04.2015, 00:14
Deimon26, писал я єту http://jsfiddle.net/vlasenkofedor/JqULS/ штуку очень давно, и код там ...
но для начала пойдет
1
0 / 0 / 0
Регистрация: 23.03.2015
Сообщений: 18
03.04.2015, 15:20  [ТС]
Спасибо большое ребят)
0
0 / 0 / 0
Регистрация: 23.03.2015
Сообщений: 18
24.05.2015, 15:37  [ТС]
Ребят, а какой принцип слайдера "Карусели?". Чтобы изображения плавно выкатывались.
0
312 / 106 / 69
Регистрация: 18.04.2015
Сообщений: 346
24.05.2015, 16:34
<div> с overflow:hidden внутри него блоки с изображениями в ряд которые двигаются путем плавного изменения свойства left.
0
0 / 0 / 0
Регистрация: 23.03.2015
Сообщений: 18
27.05.2015, 17:40  [ТС]
А свойство left изменяется на += значение ширины контейнера, я правильно понял?)
0
0 / 0 / 0
Регистрация: 23.03.2015
Сообщений: 18
29.05.2015, 15:01  [ТС]
Пытаюсь изменять положения элемента при нажатии на стрелку таким образом container[0].style.left += 500 + 'px'; Ничего не выходит. Подскажите, в чем я ошибаюсь? Если, допустим, делать вот так container[0].style.left = 500 + 'px'; , то всё работает. Не пойму, в чем ошибка. В консоли пишет "Ошибка при парсинге значения «left». Потерянное объявление. "

Добавлено через 11 минут
Код вот такой:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!DOCTYPE html>
 
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="content-type" content="text/html" charset="utf-8" />
    <meta http-equiv="content-language" content="ru">
    <meta name="copyright" content="" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="format-detection" content="telephone=yes"/>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <meta name="viewport" content="" />
    <meta name="viewport" content="" />
    <meta name="Description" content="" />
    <meta name="keywords" content="" />
    <title>Слайдер с плавной анимацией</title>
    <link href="#" rel="shortcut icon" type="image/x-icon" />
    <link rel="stylesheet" href="/css/styles.css" media="all">
</head>
<body>
    <!--Контейнер слайдера-->
    <div class="slider_container">
        <div class="images_container anim">
            <div class="images anim" style="background-image: url(/images/image_1.jpg); left: 0;"></div>
            <div class="images anim" style="background-image: url(/images/image_2.jpg); left: 500px;"></div>
            <div class="images anim" style="background-image: url(/images/image_3.jpg); left: 1000px;"></div>
        </div>
        <div class="arrow_left anim" onclick="previewSlide(this)"></div>
        <div class="arrow_right anim" onclick="nextSlide(this)"></div>
    </div>
</body>
</html>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<script>
    //Блок для JavaScript кода
    var offset = 0;
    
    function nextSlide(elem)
    {
        var container = document.getElementsByClassName('images');
        var i = 0;
        for (i; i <= container.length; i++)
        {
            container[i].style.left += 500 + 'px';
        }
    }
    
    function previewSlide(elem)
    {
        var container = document.getElementsByClassName('images');
        var i = 0;
        
        for (i; i <= container.length; i++)
        {
            container[i].style.left -= 500 + 'px';
        }
    }
    
    function $(elem)
    {
        return document.getElementById(elem);
    }
</script>
0
134 / 130 / 57
Регистрация: 29.12.2011
Сообщений: 359
29.05.2015, 15:22
JavaScript
1
container[i].style.left += 500 + 'px';
А что вы этим имелли ввиду? Хотите чтобы left стал 200px500px?
Нужно парсить старое значение, прибавлять новое и устанавливать потом
1
0 / 0 / 0
Регистрация: 23.03.2015
Сообщений: 18
29.05.2015, 16:25  [ТС]
Понял. Спасибо большое за помощь)))
Сделал так:
offsetCounter = parseFloat(container[i].style.left) - parseFloat(offset);
container[i].style.left = offsetCounter + 'px';
0
Эксперт JSЭксперт HTML/CSS
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,529
30.05.2015, 05:56
Deimon26, посмотри тут, всё на чистом js, с коментами
Движение div в зависимости от положения мыши
Запуск остановленного setInterval
0
0 / 0 / 0
Регистрация: 23.03.2015
Сообщений: 18
22.02.2016, 16:37  [ТС]
Ребят, реализовал слайдер-каресель по логике: При пролистывании слайдера влево или вправо, мы берем и создаем копию предыдущего изображения, перед текущим, и помещаем его в конец слайдера, а предыдущее изображение удаляем. Возникла такая проблема, при нескольких кликах на стрелку пролистывания, создаются копии на каждый клик мышки. Как можно поправить? И правильна ли реализована вобще логика подобных слайдеров? Или слайде-карусель делается как-то иначе? Буду благодарен за любую подсказку в нужном направлении)))
0
Эксперт JSЭксперт HTML/CSS
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,529
23.02.2016, 07:49
Цитата Сообщение от Deimon26 Посмотреть сообщение
При пролистывании слайдера влево или вправо, мы берем и создаем копию предыдущего изображения, перед текущим, и помещаем его в конец слайдера, а предыдущее изображение удаляем
принцип да, такой
я же давал ссылку, в скрипте так и реализовано
"живьём" можно скрипт у меня на сайте посмотреть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.02.2016, 07:49
Помогаю со студенческими работами здесь

Слайдер на чистом CSS в таблицах
Всем привет. Очень захотелось мне слайдер на чистом css. Примеров таких слайдеров в div'ной верстке полно, а в табличной мне так и не...

Аналог кода Jquery на чистом javascript
Ребят как написать на javascript эту функцию $(document).ready(function(){ $(&quot;#menu&quot;).on(&quot;click&quot;,&quot;a&quot;, function (event) { ...

Легковесный bbcode редактор на чистом javascript.
Никак не могу найти редактор bbcode именно на чистом javascript. На сайте javascript не используется, поэтому не хочется тянуть jquery. В...

Отслеживание появление элемента на чистом JavaScript
Доброго времени суток, гуру JS'a. Подскажите, можно ли как то на чистом JS'e отследить появление блока на странице. Страница разделена на...

Выбор второго div элемента с id на чистом JavaScript
Как можно выбрать второй элемент с определённым id на чисто js. Или с помощью маленькой библиотеки


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru