Задать вопрос
@xakslim

Почему не срабатывает preventDefault() на тачпаде MacBook?

Доброго дня. Задание было сделать поблочный скролл, из-за разной вложенности элементов плагинами поблочного скрола обойтись не получалось. В итоге был написан свой вариант поблочного скрола. Все идеально работает, но сказали что на тачпаде MacBook скролится сразу по 2 блока вместо одного. Пробовал на своем HP - все нормально отрабатывает. В чем может быть причина? Или есть какой то метод отследить скрол тачпада MacBook?

очень примерная разметка html:
<html>
<header></header>
<div class="container">
  <div class="num1 block"></div>
  <div class="num2 block"></div>
  <div class="num3 block"></div>
  <div class="num4 block"></div>
  <div class="num5 block"></div>
</div>
<footer class="num6"></footer>
</html>


var num = 1;
          var scrolling = false;

          function scroll(event) {
              var steps = $('section[class*=" num"]').length;
              event.preventDefault();
              if (!scrolling && $('.num' + (steps + 2)).length === 0) {
                  scrolling = true;
                  if (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0) {
                      num--;
                      num = num < 1 ? 1 : num;
                  } else {
                      num++;
                      num = num > (steps + 1) ? (steps + 1) : num;
                  }

                  $('html, body').animate({
                      scrollTop: $('.num' + num).offset().top
                  }, 500, "linear", function () {
                      scrolling = false;
                  });
              }
          }

          $(document).bind('mousewheel DOMMouseScroll', function (event) {
              event.preventDefault();
              scroll(event);
           });
  • Вопрос задан
  • 85 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@be_a_man
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы