mapbox:在页面顶部向上滚动时激活缩放;地图缩小时向下移动页面
mapbox: activate zoom when scrolling up at the top of the page; move page down when map is zoomed out
当页面滚动到顶部并且用户不断向上滚动时,我希望 mapbox 能够控制滚轮
对于向下滚动:当地图一直缩小(向下滚动)时,我想控制滚轮回到浏览器,这样他们就可以向下滚动(直到他们滚动回到顶部再次)。
也许有更好的方法
现在有点用,但它有问题,我不确定如何改进它
这是我目前拥有的:
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 },
)
}
})
这样效果更好
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' })
}
})
当页面滚动到顶部并且用户不断向上滚动时,我希望 mapbox 能够控制滚轮
对于向下滚动:当地图一直缩小(向下滚动)时,我想控制滚轮回到浏览器,这样他们就可以向下滚动(直到他们滚动回到顶部再次)。
也许有更好的方法
现在有点用,但它有问题,我不确定如何改进它
这是我目前拥有的:
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 },
)
}
})
这样效果更好
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' })
}
})