Git Product home page Git Product logo

bhj-element_search-slider's Introduction

Слайдер

Домашнее задание к занятию 1.2 «Способы поиска нужного HTML-элемента».

Описание

Необходимо реализовать слайдер изображений с бесконечной сменой слайдов.

Demo

Исходные данные

  1. Основная HTML-разметка
  2. Базовые CSS-стили

Все слайды представлены следующей структурой:

<div class="slider__item">
  <img class="slider__image" src="https://i.postimg.cc/rwj7v9BC/8ea2eb98-6cce-4f9f-96f0-60652623cf8e-large16x9-MGNgraphic-UFO-7.jpg" alt="">
</div>

Для того, чтобы конкретный слайд был активен, у него должен быть класс slider__item_active:

<div class="slider__item slider__item_active">
    <!-- ... -->
</div>

Навигация с помощью боковых кнопок представлена разметкой:

<div class="slider__arrows">
  <div class="slider__arrow slider__arrow_prev">&lt;</div>
  <div class="slider__arrow slider__arrow_next">&gt;</div>
</div>

Процесс реализации

  1. Установите обработчики события click на элементах «Влево» и «Вправо»
  2. При смене слайдов учитывайте, что навигация должна быть бесконечной. То есть, смена крайнего левого слайда должна перекидывать к крайнему правому и наоборот.

В решении старайтесь делать разделение кода. Регистрация обработчиков отдельно, управление слайдером отдельно.

Повышенный уровень сложности (не обязательно)

Добавьте к слайдеру управление с помощью точек:

Extended Demo

Вся HTML/CSS разметка уже присутствует в файлах (её необходимо расскомментировать):

<div class="slider__dots">
  <div class="slider__dot"></div>
  <div class="slider__dot"></div>
  <div class="slider__dot"></div>
  <div class="slider__dot"></div>
  <div class="slider__dot"></div>
</div>

При нажатии на каждый из элементов с классом slider_dot необходимо переходить на соответствующий слайд.

Для того, чтобы сделать точку активной, необходимо задать ей класс slider__dot_active:

<div class="slider__dot slider__dot_active"></div>

Навигация с помощью боковых элементов должна также приводить к смене активных точек

Подсказки (спойлеры)

Используемые темы
  1. Событие click, метод onclick, обработчик события
  2. Метод Array.from() или оператор распространения (spread, «...») для удобной навигации по найденным элементам
  3. Свойство length массива
Советы
  1. Опирайтесь на свойство length для подсчёта количества слайдов или точек
  2. При движении вправо и влево, следите, чтобы номер слайда существовал
  3. Храните номер текцщего слайда в отдельной переменной. Меняйте значение в переменной по смене слайда. По этому значению легко будет найти нужный слайд или активную точку. Задайте начальным значением 0.
  4. Для проверки на наличие того или иного класса, используйте метод includes:
dot.className.includes( 'slider__dot_active' );

Более удобный вариант - использовать объект classList, с которым вы познакомитесь позднее. Он содержит удобный метод contains:

dot.classList.contains( 'slider__dot_active' );

Решение задач

  1. Перейти в папку задания. cd ./element-search/slider.
  2. Открыть файл task.js в вашем редакторе кода и выполнить задание.
  3. Открыть файл task.html в вашем браузере и убедиться в правильности выводимых результатов.
  4. Добавить файл task.js в индекс git с помощью команды git add %file-path%, где %file-path% - путь до целевого файла. git add task.js.
  5. Сделать коммит используя команду git commit -m '%comment%', где %comment% - это произвольный комментарий к вашему коммиту. git commit -m 'first commit slider'.
  6. Опубликовать код в репозиторий homeworks с помощью команды git push -u origin master.
  7. Прислать ссылку на репозиторий через личный кабинет на сайте Нетологии.

Никаких файлов прикреплять не нужно.

Все задачи обязательны к выполнению для получения зачета. Присылать на проверку можно каждую задачу по отдельности или все задачи вместе. Во время проверки по частям ваша домашняя работа будет со статусом "На доработке".

Любые вопросы по решению задач задавайте в чате учебной группы.

bhj-element_search-slider's People

Contributors

lonskoy avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.