• Почему модульное окно не закрывается, по клику по крестику?

    потому что
    var span = document.getElementsByClassName("close");

    возвращает HTMLCollection, т.е. не один элемент а список элементов.

    А дальше идёт навешивание обработчика клика как для единственного элемента:
    span.onclick = function() {
      modal.style.display = "none";
    }

    нужно сначала взять элемент из HTMLCollection и на него уже навешивать обработчик

    span[0].onclick = function() {
      modal.style.display = "none";
    }

    или в цикле обходить все элементы HTMLCollection и на каждый навешивать обработчик
    Ответ написан
    Комментировать
  • Почему модульное окно не закрывается, по клику по крестику?

    Seasle
    @Seasle Куратор тега JavaScript
    event.target == modal меняем на event.target.closest('.modal') в данном случае.

    Или убираем window.onclick. document.getElementsByClassName возвращает массив элементов, поэтому либо span[0].onclick либо var span = document.querySelector('.close');.
    Ответ написан
    Комментировать
  • В слайдере текст у слайдов показывается, все сразу, как исправить?

    потому как у вас сразу показывается все 4 слайда, потом 3 пустых, и только потом начинается нормальное движение... изначально укажите в трех элементах style="transform: translateX(...);" верный
    Ответ написан
    Комментировать
  • Почему слайдер не работает когда меню (header) имеет position: fixed;?

    contraomnes
    @contraomnes
    Frontend developer
    он считает, что слайдер не виден вот здесь:
    if (!_isElementVisible(_mainElement)) {
                return;
              }

    если глубже, то вот здесь
    element.contains(elemFromPoint(rect.left, rect.top))
              || element.contains(elemFromPoint(rect.right, rect.top))
              || element.contains(elemFromPoint(rect.right, rect.bottom))
              || element.contains(elemFromPoint(rect.left, rect.bottom))

    когда ты используешь fixed на меню, ты перекрываешь верх слайдера, и верхние точки недоступны, а нижние не были доступны и раньше, если ты сдвинешь для интереса слайдер с помощью margin-top на пикселей 100, или
    сделаешь вот так:
    || element.contains(elemFromPoint(rect.right, rect.bottom - 1))
    || element.contains(elemFromPoint(rect.left, rect.bottom - 1))

    то он заработает) очевидно, это всё не самое подходящее решение
    Ответ написан
    Комментировать