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

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

02.04.2015, 20:30. Показов 11243. Ответов 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
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru