mapbox: активировать масштабирование при прокрутке вверху страницы; переместить страницу вниз при уменьшении масштаба карты - PullRequest
1 голос
/ 18 июня 2020

Я бы хотел, чтобы mapbox управлял колесом прокрутки, когда страница прокручивается вверх, а пользователь продолжает прокручивать вверх

Для прокрутки вниз: когда карта полностью масштабирована (прокрутка вниз), я хочу управлять колесом прокрутки до go обратно в браузер, чтобы они могли прокручивать вниз (пока они снова не прокрутятся обратно наверх).

может быть, есть лучший способ сделать это

сейчас вроде работает, но глючит, и я не уверен, как его улучшить

Вот что у меня есть:


    map.on('zoomstart', () => {
        if (10 < window.scrollY) map.scrollZoom.disable()
    })

    map.on('idle', () => {
        if (window.scrollY <= 10) map.scrollZoom.enable()
    })


    map.on('zoomend', async () => {
        const [[s, w], [n, e]] = map.getBounds().toArray()

        if ((w < -179.9 && 179.9 < e) || (s < -73.9 && 82.9 < n)) {
            window.scrollTo({ top: window.scrollY + window.innerHeight * 0.1 })
            map.fitBounds(
                [
                    [170, 25],
                    [-170, 25],
                ],
                { animate: false },
            )
        }
    })

1 Ответ

1 голос
/ 24 июня 2020

это работает намного лучше

map.on('zoom', () => {
    const [[w, s], [e, n]] = map.getBounds().toArray()

    if ((w < -179.9 && 179.9 < e) || (s < -73.9 && 82.9 < n)) {
        window.scrollTo({top: window.scrollY + window.innerHeight * 0.1})
    } else {
        if (0 < window.scrollY)
            window.scrollTo({ top: 0, behavior: 'smooth' })
    }
})
...