• Как отключить скролл страницы в области Яндекс Карты?

    Seasle
    @Seasle Куратор тега JavaScript
    Можно сделать вот так.
    <div class="scroll-blocker">
      <YOUR_MAP />
    </div>

    const mouse = { x: -1, y: -1 };
    const elements = document.getElementsByClassName('scroll-blocker');
    
    window.addEventListener('mousemove', (event) => {
      mouse.x = event.clientX;
      mouse.y = event.clientY;
    });
    
    window.addEventListener('wheel', (event) => {
      const target = document.elementFromPoint(mouse.x, mouse.y);
      for (const element of elements) {
        if (element.contains(target)) {
          event.preventDefault();
          return;
        }
      }
    }, { passive: false, capture: true });
    Ответ написан
    Комментировать
  • Как отключить скролл страницы в области Яндекс Карты?

    @shsv382
    1. Используй IntersectionObserver для отслеживания положения карт
    2. В обработчике onwheel вызови event.preventDefault(), потому что onscroll нельзя отменить так как тебе надо
    Ответ написан
    Комментировать