[Javascript] evento onresize

  • Creatore Discussione Creatore Discussione anto4392
  • Data di inizio Data di inizio

anto4392

Nuovo Utente
22 Mag 2017
25
1
3
33
Salve a tutti ho creato una pagina in cui viene creata una mappa con le librerie di Google maps. Vorrei che quando la pagina viene ridimensionata, venisse richiamata la funzione di inizializzazione della mappa (initMap) in modo tale da mantenere stabile il centro della mappa.

Attualmente ho scritto questo codice ma non funziona, potete aiutarmi?
Codice:
<!DOCTYPE html>
  <html lang="it">
    <head>
    <title>Iniziative</title>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="style.css">
    <link href="https://fonts.googleapis.com/css?family=Droid+Sans" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    <!--[if lt IE 9]>
        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]-->

 <script type="text/javascript" src="clusterer/src/markerclusterer.js"></script>
    </head>
    
        <body>

      
        <!--Header-->
        
        <header>
        
        
        <nav class="social">
                    <ul>
                        <li><a href="#"class="fa fa-facebook"></a></li>
                        <li><a href="#" class="fa fa-twitter"></a></li>
                        <li><a href="#" class="fa fa-instagram"></a></li>
                        <li><a href="#" class="fa fa-youtube"></a></li>

                    </ul>
        </nav>
        
        <div class="form-top">
        <form>Registrati alla Newsletter
            <input type="email">
            <input type="submit" id="submit" value="Registrati">
            </form>
        </div>
        
        <div class="img_top">
        <img src="image/banner.jpg" class="small" alt="logo"/>
            </div>
            
            
        <!--Menu di navigazione-->
        <div class="topnav" id="myTopnav">
        <a href="index.html">Home</a>
        <a href="progetto.html">Progetto</a>
        <a href="iniziative.html">Iniziative</a>
        <a href="news.php">News</a>
        <a href="foto.php">Foto e video</a>
        <a href="partecipare.html">Come partecipare</a>
        <a href="registrati.html">Registrati</a>
        <a href="contatti.html">Contatti</a>
        <a href="javascript:void(0);" class="icon" onclick="myFunction()">&#9776;</a>
        </div>
        
        
        </header>
    
    
<div id="content">


        <div id="articolo">
        <h1>Iniziative</h1>
        
<div class="contenuto-articolo">

<p class="desc">Le attività di Buona Strada si svolgono su tutto il territorio nazionale e comprendono corsi, festival, iniziative per il recupero urbano, comitati di cittadini attivi, associazioni culturali, con una specifica missione di coinvolgimento e sviluppo dell'audience del pubblico di strada:</p>

<ul class="desc-elenco">
<li>Una variegata serie di attività specifiche per il coinvolgimento del pubblico</li>
<li>Un piano di comunicazione che dia visibilità all’iniziativa</li>
<li>Incontri e tutorial per la formazione dei responsabili di attività con il pubblico delle organizzazioni partner</li>
<li>La produzione e disseminazione di strumenti per la documentazione, lo sviluppo e la replicabilità di attività di audience engagement</li>
</ul>

<p class="desc"> Per scoprirle tutte, cerca quella più vicina a te all'interno della cartina e clicca per scoprire di cosa si tratta.</p>

</div>
</div>


<div id="map" style="width:100%;height:400px" onresize="riadatta()">


</div>

</div>
        

        <!--Footer-->
        <footer>
        <p>FNAS - Federazione Nazionale Artisti di strada | sede legale: Via di Villa Patrizi 10, 00161 Roma - C.F. 96395280587 - P.Iva 07510401008</p>
        </footer>
        
        <script>
<!--Rende la topnav responsive-->
function myFunction() {
    var x = document.getElementById("myTopnav");
    if (x.className === "topnav") {
        x.className += " responsive";
    } else {
        x.className = "topnav";
    }
}
</script>

    <script>

function initMap() {

  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 5,
    center: {
      lat: 41.90278349999999,
      lng: 12.496365500000024
    }
  });
 
       // Create an array of alphabetical characters used to label the markers.
        var labels = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  var infoWin = new google.maps.InfoWindow();
  // Add some markers to the map.
  // Note: The code uses the JavaScript Array.prototype.map() method to
  // create an array of markers based on a given "locations" array.
  // The map() method here has nothing to do with the Google Maps API.
 
  var markers = locations.map(function(location, i) {
    var marker = new google.maps.Marker({
      position: location
    });
    google.maps.event.addListener(marker, 'click', function(evt) {
      infoWin.setContent(location.info);
      infoWin.open(map, marker);
    })
    return marker;
  });

  // Add a marker clusterer to manage the markers.
 var markerCluster = new MarkerClusterer(map, markers, {
    imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'
  });

}


var locations = [{
  lat: 45.7110753,
  lng: 8.290583900000001,
  info: '<a href="http://www.sportarcobaleno.it/">'+'<img src="image/arcobaleno.jpg" style="width:70px;margin-left:10px;" />'+'<p style="text-align:center;">'+'Borgosesia (VC)'+'</p>'+'</a>'
}, {
  lat: 44.9380137,
  lng: 8.070222300000069,
  info: '<a href="http://www.chapitombolo.it/">'+'<img src="image/chapitombolo.jpg" style="width:70px;margin-left:10px;" />'+'<p style="text-align:center;">'+'Monale (AT)'+'</p>'+'</a>'
}, {
  lat: 45.07031200000001,
  lng: 7.686856499999976,
  info: '<a href="http://www.flicscuolacirco.it/">'+'<img src="image/flic.jpg" style="width:70px;margin-left:10px;" />'+'<p style="text-align:center;">'+'Torino'+'</p>'+'</a>'
}, {
  lat: 45.44692999999999,
  lng: 8.622161199999937,
  info: '<a href="http://www.dimidimitri.com/">'+'<img src="image/dimidimitri.jpg" style="width:70px;margin-left:10px;" />'+'<p style="text-align:center;">'+'Novara'+'</p>'+'</a>'
}, {
  lat: 45.7586155,
  lng: 8.558182399999964,
  info: '<a href="http://www.circoclap.it/">'+'<img src="image/clap.jpg" style="width:70px;margin-left:10px;" />'+'<p style="text-align:center;">'+'Arona (NO)'+'</p>'+'</a>'
}, {
  lat: 44.76826669999999,
  lng: 7.6759131000000025,
  info: '<a href="http://www.bimbocirco.wordpress.com/">'+'<img src="image/fumanduma.jpg" style="width:70px;margin-left:10px;" />'+'<p style="text-align:center;">'+'Racconigi (NO)'+'</p>'+'</a>'
}, {
  lat: -21.13594,
  lng: -44.26132,
  info:'<a href="http://www.jaqule.com/">'+'<img src="image/jaqule.jpg" style="width:70px;margin-left:10px;" />'+'<p style="text-align:center;">'+'Orbassano (TO)'+'</p>'+'</a>'
},{
  lat: 44.3953434,
  lng: 7.8196709000000055,
  info: '<a href="http://www.scuoledicircomacrame.blogspot.it/">'+'<img src="image/macrame.jpg" style="width:70px;margin-left:10px;" />'+'<p style="text-align:center;">'+'Mandovì (CN)'+'</p>'+'</a>'
}, {
  lat: 44.1024504,
  lng: 9.824082599999997,
  info: '<a href="http://www.atestaingiu.it/progetto-teatro/progetto-circo/">'+'<img src="image/atestain.jpg" style="width:70px;margin-left:10px;" />'+'<p style="text-align:center;">'+'La Spezia'+'</p>'+'</a>'
},  {
  lat: 44.11142400000001,
  lng: 9.963121499999943,
  info: '<a href="http://www.facciamocirco.it/">'+'<img src="image/facciamocirco.jpg" style="width:70px;margin-left:10px;" />'+'<p style="text-align:center;">'+'Sarzana (SP)'+'</p>'+'</a>'
},
{
  lat: 44.494887,
  lng: 11.342616300000032,
  info: '<a href="http://www.liv-bo.com//">'+'<img src="image/liv.jpg" style="width:70px;margin-left:10px;" />'+'<p style="text-align:center;">'+'Bologna'+'</p>'+'</a>'
},
{
  lat: 44.8381237,
  lng: 11.619786999999974,
  info: '<a href="http://www.teatronucleo.org//">'+'<img src="image/mascaro.jpg" style="width:70px;margin-left:10px;" />'+'<p style="text-align:center;">'+'Ferrara'+'</p>'+'</a>'
},
{
  lat: 40.9607672,
  lng: 15.81542300000001,
  info: '<a href="http://www.cinquecontinentifestival.com//">'+'<img src="image/venosa.jpg" style="width:70px;margin-left:10px;" />'+'<p style="text-align:center;">'+'Venosa (PZ)'+'</p>'+'</a>'
},{
  lat: 39.677333,
  lng: 15.818048399999952,
  info: '<a href="http://www.peperoncinofestival.org//">'+'<img src="image/peperoncino.jpg" style="width:70px;margin-left:10px;" />'+'<p style="text-align:center;">'+'Diamante (CS)'+'</p>'+'</a>'
},{
  lat: 40.9205755,
  lng: 14.73935240000003,
  info: '<a href="http://www.castellarte.it/home//">'+'<img src="image/castellarte.png" style="width:70px;margin-left:10px;" />'+'<p style="text-align:center;">'+'Mercogliano (AV)'+'</p>'+'</a>'
},{
  lat: 46.07106679999999,
  lng: 13.23457940000003,
  info: '<a href="http://www.circoallincirca.it//">'+'<img src="image/allincirca.png" style="width:70px;margin-left:10px;" />'+'<p style="text-align:center">'+'Udine'+'</p>'+'</a>'
},  ];


    </script>

<script>

function riadatta(){
var x=initMap();
return x;
}

</script>






<script src="https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/markerclusterer.js">
    </script>
    <script async defer
    src="https://maps.googleapis.com/maps/api/js?key=AIzaSyATURpVXv_Q0Zzmd6VLRekmBHgq7gDthTw&callback=initMap">
    </script>



</body>
  </html>
 
L'evento onresize non è per i DIV, lo devi mettere in BODY, altrimenti non parte la funzione "riadatta()". Ti sei accorta che la funzione riadatta non parte proprio vero? ....non viene proprio chiamata.

Codice:
<body onresize="riadatta()">


Mentre la funzione riadatta puoi scriverla pure così:

Codice:
function riadatta(){
    initMap();
}

quel return non ha senso... return a cosa?
 

Discussioni simili