Отмотка страницы к началу при смене сладов

132
20 ноября 2019, 06:30
    $(document).ready(function(){
'use strict';
    var multiItemSlider = (function () {
      return function (selector, config) {
        var
          _mainElement = document.querySelector(selector), // основный элемент блока
          _sliderWrapper = _mainElement.querySelector('.slider__wrapper'), // обертка для .slider-item
          _sliderItems = _mainElement.querySelectorAll('.slider__item'), // элементы (.slider-item)
          _sliderControls = _mainElement.querySelectorAll('.slider__control'), // элементы управления
          _sliderControlLeft = _mainElement.querySelector('.slider__control_left'), // кнопка "LEFT"
          _sliderControlRight = _mainElement.querySelector('.slider__control_right'), // кнопка "RIGHT"
          _wrapperWidth = parseFloat(getComputedStyle(_sliderWrapper).width), // ширина обёртки
          _itemWidth = parseFloat(getComputedStyle(_sliderItems[0]).width), // ширина одного элемента    
          _positionLeftItem = 0, // позиция левого активного элемента
          _transform = 0, // значение транфсофрмации .slider_wrapper
          _step = _itemWidth / _wrapperWidth * 100, // величина шага (для трансформации)
          _items = []; // массив элементов
        // наполнение массива _items
        _sliderItems.forEach(function (item, index) {
          _items.push({ item: item, position: index, transform: 0 });
        });
        var position = {
          getMin: 0,
          getMax: _items.length - 1,
        }
        var _transformItem = function (direction) {
          if (direction === 'right') {
            if ((_positionLeftItem + _wrapperWidth / _itemWidth - 1) >= position.getMax) {
              return;
            }
            if (!_sliderControlLeft.classList.contains('slider__control_show')) {
              _sliderControlLeft.classList.add('slider__control_show');
            }
            if (_sliderControlRight.classList.contains('slider__control_show') && (_positionLeftItem + _wrapperWidth / _itemWidth) >= position.getMax) {
              _sliderControlRight.classList.remove('slider__control_show');
            }
            _positionLeftItem++;
            _transform -= _step;
          }
          if (direction === 'left') {
            if (_positionLeftItem <= position.getMin) {
              return;
            }
            if (!_sliderControlRight.classList.contains('slider__control_show')) {
              _sliderControlRight.classList.add('slider__control_show');
            }
            if (_sliderControlLeft.classList.contains('slider__control_show') && _positionLeftItem - 1 <= position.getMin) {
              _sliderControlLeft.classList.remove('slider__control_show');
            }
            _positionLeftItem--;
            _transform += _step;
          }
          _sliderWrapper.style.transform = 'translateX(' + _transform + '%)';
        }
        // обработчик события click для кнопок "назад" и "вперед"
        var _controlClick = function () {
          var direction = this.classList.contains('slider__control_right') ? 'right' : 'left';
          _transformItem(direction);
        };
        var _setUpListeners = function () {
          // добавление к кнопкам "назад" и "вперед" обрботчика _controlClick для событя click
          _sliderControls.forEach(function (item) {
            item.addEventListener('click', _controlClick);
          });
        }
        // инициализация
        _setUpListeners();
        return {
          right: function () { // метод right
            _transformItem('right');
          },
          left: function () { // метод left
            _transformItem('left');
          }
        }
      }
    }());
    var slider = multiItemSlider('.slider');
    });

Здравствуйте, можете подсказать как сделать так чтобы после каждой прокрутке сайта страница не отматывалась к верху? Код слайдера прикреплен выше.

READ ALSO
HTML5 audio поток &ldquo;прыгает&rdquo;

HTML5 audio поток “прыгает”

Реализую проигрывание аудиопотока на сайте с помощью JavaScript:

164
Перебор родных свойств объекта

Перебор родных свойств объекта

ПриветНе подскажите, как перебрать родные свойства объекта?

135
Поменять DOM с помощью JavaScript [закрыт]

Поменять DOM с помощью JavaScript [закрыт]

Не могу, поменять DOM с помошью "getElementById" и "innerHTML"Можете помочь как правильно сделать

122
Как переделать javascript на обратное преобразование

Как переделать javascript на обратное преобразование

Есть локальный конвертер для преобразования файла m3u в enigma2Как сделать обратный конвертер для преобразования --- файла enigma2 в m3u ?

125