• Почему класс удаляется, а потом не добавляется?

    @ssr89 Автор вопроса
    LJ322, здравствуйте!

    Всё никак не мог время уделить из-за работы. В общем, думаю проблема в функциях bodyLock и bodyUnLock, потому что эти функции не только класс добавляют, а также стилизуют body и его позицию указывают в момент блокировки.

    Посмотрите, пожалуйста.

    const lockPadding = document.querySelectorAll(".lock-padding");
    
    function bodyLock() {
        const lockPaddingValue = window.innerWidth - wrapper.offsetWidth + "px"; // ширина скролла.
    
        let pagePosition = window.scrollY; /* положение скролла */
    
        if (lockPadding.length > 0) {
          /* фиксированные объекты*/
          for (let index = 0; index < lockPadding.length; index++) {
            const el = lockPadding[index];
            el.style.paddingRight = lockPaddingValue;
          }
        }
        body.style.paddingRight = lockPaddingValue;
        body.classList.add("lock");
    
        body.dataset.position = pagePosition;
        body.style.top = -pagePosition + "px";
      }
    
      function bodyUnLock() {
        setTimeout(function () {
          let pagePosition = parseInt(body.dataset.position, 10); 
          body.style.top = "auto"; /* стили body */
          if (lockPadding.length > 0) {
            for (let index = 0; index < lockPadding.length; index++) {
              const el = lockPadding[index];
              el.style.paddingRight = "0px";
            }
          }
          body.style.paddingRight = "0px";
          body.classList.remove("lock");
    
          window.scroll({
            top: pagePosition,
            left: 0
          }); /* положение скролла */
          body.removeAttribute("data-position");
        }, timeout);
      }
  • Почему класс удаляется, а потом не добавляется?

    @ssr89 Автор вопроса
    LJ322, добрый день.

    Нет, не полный. Сам код большой, я лишь основную часть выложил. Если всё работает, значит в другой части кода проблема.

    На codepen выложу и пришлю ссылку. Сам разобраться не могу пока.