Что делают эти строки?

166
25 января 2021, 21:30

Помоготе разобраться что делают эти 7 строк что я закоментировал.Не могу розобраться в длинных jQuery цепочках( Код слайдера:

    var slideWidth=1663;
var sliderTimer;
$(function(){
$('.slidewrapper').width($('.slidewrapper').children().size()*slideWidth); //1
    sliderTimer=setInterval(nextSlide,5000);
    $('.viewport').hover(function(){
        clearInterval(sliderTimer);
    },function(){
        sliderTimer=setInterval(nextSlide,5000);
    });
});
function nextSlide(){
    var currentSlide=parseInt($('.slidewrapper').data('current')); //2
    currentSlide++;
    if(currentSlide>=$('.slidewrapper').children().size()) //3
    {
        $('.slidewrapper').css('left',-(currentSlide-2)*slideWidth);   //4
        $('.slidewrapper').append($('.slidewrapper').children().first().clone());  //5
        $('.slidewrapper').children().first().remove(); //6
        currentSlide--;                        
    }
        $('.slidewrapper').animate({left: -currentSlide*slideWidth},1000).data('current',currentSlide); //7
}
Answer 1
  1. Для элемента .slidewrapper устанавливается ширина, равная произведению ширины одного слайда (дочернего элемента, children) на их количество
  2. currentSlide присваивается значение атрибута data-current элемента . slidewrapper, приведенное к типу integer
  3. Если currentSlide больше или равен числу слайдов
  4. Для элемента .slidewrapper устанавливается css-свойство left, вычисляется смещение на два слайда влево (отрицательное значение)
  5. В конец элемента .slidewrapper добавляется клон первого слайда (первого дочернего элемента)
  6. Первый дочерний элемент удаляется
  7. Для элемента .slidewrapper устанавливается css-свойство left, вычисляется смещение на 1 слайда влево (отрицательное значение). Изменение значения свойства происходит плавно, за 1000 мс (анимация). Для этого же элемента устанавливается атрибут data-current в значение currentSlide
Answer 2
  1. Установка элементу с классом slidewrapper ширины равной количеству дочерних элементов умноженных на slideWidth.
  2. Присвоение переменной currentSlide целого числа из атрибута data-current элемента с классом slidewrapper.
  3. Проверка на то, что currentSlide больше или равен количеству дочерних элементов элемента с классом slidewrapper.
  4. Установка css-значения left элемента с классом slidewrapper равным отрицательному произведению currentSlide - 2 и slideWidth.
  5. Добавление в элемент с классом slidewrapper копии первого дочернего элемента.
  6. Удаление из элемента с классом slidewrapper первого дочернего элемента.
  7. Анимированое изменение значения css-свойства left элемента с классом slidewrapper на отрицательное произведение currentSlide и slideWidth, а потом установка значения атрибута data-current равным currentSlide.
READ ALSO
Последовательность отправки AJAX

Последовательность отправки AJAX

Есть задача: С элементов страницы собираются данные (ID)Далее их, по очереди, надо отправить на сервер, но чётко последовательно(после завершения-следующий)

114
Вопрос о курсоре (mac os но возможно и web и windows)

Вопрос о курсоре (mac os но возможно и web и windows)

Проблема в том что есть сайт на котором спрятан курсор в принципе ( cursor: none ) но когда на мой mac приходит уведомление с другого приложения например...

125
Как лучше из объекта получить массив его keys , у которых свойство = true?

Как лучше из объекта получить массив его keys , у которых свойство = true?

Подскажите как заменить на более es6, чтобы обойтись без let и push

115