Queremos que os usuários possam arrastar o mapa no layout do tablet / desktop, mas as telas do telefone são muito pequenas e, quando o usuário está rolando a página, ele repentinamente começa a arrastar dentro do mapa. Como o mapa ocupa quase toda a tela, ele está bloqueado no mapa e não é capaz de rolar mais para baixo na página.
Este é um problema muito simples com uma solução muito simples, mas a maioria das respostas que encontrei eram complexas, então decidi compartilhar esta dica:
No javascript onde você cria o mapa:
function initMap(){
var isDraggable = $(document).width() > 480 ? true : false; // If document (your website) is wider than 480px, isDraggable = true, else isDraggable = false
var mapOptions = {
draggable: isDraggable,
scrollwheel: false, // Prevent users to start zooming the map when scrolling down the page
//... options options options
};
}
Se você precisar que eles sejam capazes de navegar no mapa em dispositivos móveis, você pode definir panControl: true
da mesma maneira.
Claro, isso só define essa opção ao iniciar o mapa, portanto, quando os usuários redimensionam seu navegador para ‘layout móvel’, ele não muda. Se precisar disso, você pode ouvir o $(window).resize()
evento e usar setOptions()
para alterar o draggable
parâmetro de acordo com suas necessidades, mas acho que isso não é útil, já que as pessoas – exceto para desenvolvedores da web – não navegam em sites com 480px de largura em um desktop;)