Blog „Inteligentné“ prekrytie Google mapy

„Inteligentné“ prekrytie Google mapy

responzivny_dizajnPrednedávnom som písal blog ako na responzívnu mapu do dizajnu vašej webstránky. Snáď sa vám páčilo a dnes vám ukážem jeden malý „hack“ ako spraviť „inteligentné“ prekrytie tejto Google mapy.

Prečo by som to robil?

Určite poznáte ten pocit, že scroll-ujete po stránke a prídete k mape, a tam aj skončíte, pretože vám mapa začne scroll-ovať. O to horšie je to na mobiloch.

V prípade, že už parameter scrollwheel, draggable atď… nestačia, pretože napríklad chcete, aby sa na tej mapke dalo scrollovať a hýbať, avšak nie od začiatku, ale až po nejakej akcii užívateľa, tak viete spraviť jeden malý milý fix.

Logika

Po kliknutí chcem aby som mohol v mape scrollovať, hýbať sa, avšak keď opustím myšou priestor mapy, chcem aby som opäť mohol bez problémov scrollovať, bez toho, aby ma zasekla mapa.

Realizácia

Zostáva nám teda popísať si ako tento skvelý „hack“ aplikujeme.

Takže tu máme HTML

<!-- Zaciatok alebo nejaky wrapper pre mapu, nemusi to byt section -->
<section id="google-map">

<!-- Do tohto divu si naloadujeme mapu navod najdete v predchadzajucom blogu, link pod clankom -->
  <div id='location-canvas' style='width:100%;height:300px;'>
  </div>

<!-- A toto je nas MAGIC DIV -->
  <div class="over-map">
  </div>

<!-- Koniec sekcie s mapou -->
</section>

Do CSS pridáme

#google-map {
  position: relative;
}
.over-map { position: absolute; width: 100%; height: 100%; background-color: transparent; top: 10px; right: 10px; z-index: 99; }

A nakoniec si pridáme takúto malú srandičku do JavaScriptu:

 $(document).ready(function(){
        initialize();

    // vytvoríme si objekt nášho magického divu
    var magicDiv = $('.over-map');
    
    // vytvorime si objekt mapy
    var magicMap =  $('#location-canvas');
   
    /* nabindujeme si klik, tj... ak klikneme na tento magicky 
       div ktory prekryje mapu, tak sa skryje  */
    magicDiv.click(function(){
      $(this).hide();
    });

    /* nabindujeme si odchod mysky z mapy, tj... ak mys opusti mapu 
       , div ktory prekryje mapu sa znova zobrazi  */
    magicMap.mouseout(function(){
       magicDiv.show();
    });
        
    /* Fix pre dotykové obrazovky */      
    magicMap.bind('touchend', function(){
      $('.over-map').show();
    })
    
});

(potrebujeme samozrejme jQuery, vieme to spraviť aj bez jQuery, keby niekto chcel, nech napíše do komentára, doplníme. Teraz sa mi nechce).

A hotovo. „Inteligentné“ prekrytie Google mapy 2

Ešte video, ako to celé funguje, prípadne si skúste na http://www.detroit.sk

A ešte JSFiddle ukážka.


Dobrý článok? Chceš dostávať ďalšie?

Už viac ako 6 200 ITečkárov dostáva správy e-mailom. Nemusíš sa báť, nie každé ráno. Len občasne.



Súhlasím so spracovaním mojich osobných údajov. ( Viac informácií. )

Tvoj email neposkytneme 3tím stranám. Posielame naňho len informácie z robime.it. Kedykoľvek sa môžeš odhlásiť.

Ľuboš Beran
Ľuboš Beranhttp://www.detroit.sk
Venujem sa vývoju prevažne webových aplikácii založených na open-source riešeniach (Node.JS, PHP...), no vo voľnom čase ma baví najmä bezpečnosť a riešenie CME (crack me) hlavolamov a problematiky okolo IoT.

Python Developer s možnosťou naučiť sa Julia

Chceš pracovať na dlhodobom, technologicky inovatívnom projekte v oblasti prediktívneho modelovania? Pre spoločnosť, ktorá používa matematické metódy a metódy AI...

Junior Scala Developer

Nechceš denne dochádzať do práce? Chcel by si byť súčasťou dlhoročného startupu, len senior ľudia (žiadni študenti) a pracovať...

Scala Medior/Senior Developer

Nechceš denne dochádzať do práce? Chcel by si byť súčasťou dlhoročného startupu, len senior ľudia (žiadni študenti) a pracovať...

Data Enginner / REMOTE

Pre mladý startup vyvíjajúci softvér, ktorý prispieva hráčom k lepšiemu zážitku z hrania, hľadáme Data Engineera. Založili ho dvaja...

React Developer

Projekt je veľmi inovatívny a bude určovať trendy v oblasti bankovníctva pre enterprise klientov v Európe. Budú ťa viesť...

Backend/Node.js Developer / REMOTE

Pre mladý startup vyvíjajúci softvér, ktorý prispieva hráčom k lepšiemu zážitku z hrania, hľadáme Backend/Node.js Developera. Založili ho dvaja...

DevOps Engineer / REMOTE

Si DevOps Enginner, zvládneš programovanie v Pythone alebo Golang? Pre spoločnosť, ktorá sa zaoberá pokročilou analýzou dát a automatizáciou...

Qubit Konferencia na kybernetickú bezpečnosť po prvýkrát na Slovensku

Po Prahe, Sofii a Belehrade sa Qubit presunie do krásnych Tatier! 1. ročník konferencie na kybernetickú bezpečnosť v Qubit štýle...

Soňa Pochybová: Ak ťa niečo trápi, alebo niečomu nerozumieš, ozvi sa!

Soňa má 36 rokov a pracuje ako Lead Software Developerka pre Národnú Banku Slovenska. Hoci pôvodne vyštudovala fyziku, ako...

GIRL´S DAY už po ôsmy raz priblíži stredoškoláčkam svet technológií

Už po ôsmy raz sa uskutoční celoslovenské podujatie GIRL´S DAY, ktoré prepája IT firmy a organizácie so stredoškoláčkami po...

Čítaj ďalej:

Dobrý článok? Chceš dostávať ďalšie?

Už viac ako 6 200 ITečkárov dostáva správy e-mailom. Nemusíš sa báť, nie každé ráno. Len občasne.

Súhlasím so spracovaním mojich osobných údajov. ( Viac informácií. )

Tvoj email neposkytneme 3tím stranám. Posielame naňho len informácie z robime.it. Kedykoľvek sa môžeš odhlásiť.