es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Mapa HERE de JavaScript no se muestra en las pestañas de Bootstrap hasta que se redimensiona la ventana.

Estoy tratando de mostrar un mapa de HERE en pestañas Bootstrap con este ejemplo simple: https://developer.here.com/documentation/maps/3.1.30.3/dev_guide/topics/map-controls-ui.html

El problema es que el mapa no aparece al cargar la página hasta que se cambia el tamaño de la ventana. Tan pronto como se cambia el tamaño de la ventana, el mapa aparece inmediatamente. O si muevo el mapa fuera de las pestañas, funciona bien. Ya he intentado forzar la activación de eventos de ventana y documento, pero no ayuda. Intenté retrasarlo, pero nada.

¿Qué más puedo hacer para mostrar el mapa en la pestaña al cargar la página?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Hay un par de cosas que puedes intentar para mostrar el mapa en la pestaña al cargar la página:

    1. Puedes intentar usar el evento “shown.bs.tab” en Bootstrap, que se activa cuando se muestra una pestaña. Puedes inicializar el mapa cuando se active este evento. Algo así:
      $('#myTab').on('shown.bs.tab', function (e) {
         // inicializa el mapa aquí
      });
      
    2. También puedes intentar llamar al método map.getViewPort().resize() después de la inicialización del mapa. Esto obligará al mapa a dibujarse de nuevo y puede solucionar el problema:
      var map = new H.Map(document.getElementById('map'), {...});
      map.getViewPort().resize();
      
    3. Otra opción es usar el evento onload para inicializar el mapa cuando la página se haya cargado por completo. Después, puedes usar CSS para ocultar el contenedor del mapa hasta que el mapa esté completamente inicializado. Algo así:
      <div id="map-container" style="display:none">
         <div id="map"></div>
      </div>
      
      window.onload = function () {
         var mapContainer = document.getElementById('map-container');
         mapContainer.style.display = 'block';
         var map = new H.Map(document.getElementById('map'), {...});
      };
      

      Asegúrate de ajustar el CSS según tus necesidades específicas.

    Esperamos que una de estas opciones solucione el problema y permita mostrar el mapa en la pestaña al cargar la página.

Comments are closed.