2010-07-27 12 views
6

Estoy construyendo un sitio y tengo una página que toma una dirección y la usa para generar un estilo de hoja de ruta en 2D google-map y luego al lado, la vista de calle para esa dirección.¿Se puede deshabilitar ScrollWheel en una vista de calle personalizada?

Mi problema es que estos dos mapas abarcan casi todo el ancho del sitio y es probable que el usuario lo revise cuando se desplaza hacia abajo y se confunde por su incapacidad para desplazarse hacia abajo (mientras se acerca un mapa).

La desactivación de este para ver el mapa 2D fue bastante estrecha delantero

//works to disable scroll wheel in 2D map 
var mapOptions = { 
    zoom: 12, 
    center: latlng, 
    scrollwheel: false, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions); 

//not working to disable scroll wheel in panorama 
var panoramaOptions = { 
    position: results[0].geometry.location, 
    scrollwheel: false 
}; 

panorama = new google.maps.StreetViewPanorama(document.getElementById("map_canvas2"), panoramaOptions); 

pero no parece la vista de la calle que me permita desactivar la rueda del uso de estas opciones y no soy capaz de encontrar esta cuestión tratada en los documentos de google. ¿Alguien sabe si esto PUEDE hacerse o sugerencias sobre cómo abordarlo?

Respuesta

3

Tengo el mismo problema, cuando el usuario se desplaza hacia abajo con la rueda del mouse, el cursor queda atrapado en la vista de Google Street y comienza a hacer zoom en lugar de desplazarse hacia abajo en la página.

En Google Maps proporcionan la propiedad scrollwheel que puede desactivar esto, pero desafortunadamente esto no parece implementarse en Street View.

La única solución que encontré a partir de ahora es como @bennedich dijo en la respuesta anterior, coloqué un div vacío/transparente exactamente sobre el div de la vista de la calle.

Estoy habilitando los controles cuando el usuario hace clic en cualquier lugar sobre el área de la vista de la calle usando jQuery para ocultar este div vacío (usando la propiedad css visibility) en el evento mousedown y cuando el usuario mueve el mouse estoy colocando este div vacío vuelta sobre. Lo que básicamente significa que cada vez que el usuario quiera interactuar con el control de Street View, tiene que hacer clic una vez. No es la mejor solución, pero es mejor que obtener el mouse atrapado al desplazarse

0

No conoce la forma de Javascript, pero con html y css puede colocar un div invisible con un índice z más alto sobre el mapa/streetview.

+1

Una sugerencia, sería que no desactive toda la interacción con la vista de la calle? – DeviousBlue

10

Hubo una solicitud de función con Gmaps API v3 para agregar scrollwheel: false a la vista de calle http://code.google.com/p/gmaps-api-issues/issues/detail?id=2557. Esto ahora está arreglado, simplemente use scrollwheel: false dentro de sus opciones StreetViewPanorama.

+1

¡Gracias por la actualización! Agregaré esto a mi sitio en lugar de mi solución. Me encanta cuando las funciones que necesito se agregan a una API ;-) – DeviousBlue

+0

Gracias Frank. Me alegro de que finalmente haya agregado esto, una línea de código y puedo eliminar toda la solución de mierda. – manubkk

+2

Esta es ahora la respuesta correcta y debe marcarse como tal. Me doy cuenta, sin embargo, de que come eventos de desplazamiento y, por lo tanto, el desplazamiento se detiene cuando llegas allí. Si bien elimina el molesto error de zoom cuando llegas, sigue siendo, en mi humilde opinión, un error. – dudewad

0

Hay un parche que viene de Google para resolver este problema.

La solución que funciona por ahora es establecer el número de versión explícitamente en 3.25 para scrollwheel: false para funcionar.

Ejemplo: https://maps.googleapis.com/maps/api/js?key=XXX&v=3.25

+0

¡Guau! gracias por actualizar esta vieja pregunta, es bueno saber que planean abordar esto. – DeviousBlue

Cuestiones relacionadas