2015-03-19 23 views
16

eşler:devre dışı bırak kaydırma yakınlaştırma kullandığım görünüşte zaman, Yani iframe

<iframe style="pointer-events:none;" src="SOME GOOGLE MAPS LINK" width="100%" height="500" frameborder="0" ></iframe> 

kaydırma da devre dışı olur.

ve ben kullandığınızda:

<iframe style="scrollwheel: false" src="SOME GOOGLE MAPS LINK" width="100%" height="500" frameborder="0" ></iframe> 

sadece deosn't işi.

iframe'deki kaydırma zumunu kapatmak için zaten var mı?

+1

- Eğer cmd kullanmak zorunda" diyerek, şimdi harita görünümü sabittir ve bir metin bunun görüntülenir + yakınlaştırmak :-) benim için harika bir haber! – tschagger

cevap

40

Yalnızca Google Haritalar iframe API'sinde kaydırma işlemini devre dışı bırakmanın bir yolu yoktur, ancak etrafta bir çalışma vardır.

style="pointer-events:none;"'un, iframe'in herhangi bir fare olayı almasını engellediğini ve bindirme üzerinde Javascript olay işleyicileriyle birleştiğini fark ettiğiniz gibi, istediğiniz zaman fare olayı almayı devre dışı bırakabilir ve etkinleştirebilirsiniz.

Hatta mousemove() dinlemek ve fare belli alanlarda (örneğin, düğmeleri)

açık olduğunda sadece işaretçi olayları serbest bırakabilirsiniz ben bu yardımı umut github üzerinde quick demo yaptı.

+4

Harika tanıtım! http://kylelam.github.io/iframe.html –

+0

Kusursuz çalışın. – Bipon

+0

11'den önceki herhangi bir IE sürümünü desteklemeniz gerekiyorsa, pointer-olayı özniteliğine dayanan herhangi bir çözüm çalışmayacaktır. – Edward

1

O merak nasıl @kaho fikri Uyarlanan JavaScript Google Harita API'sini

devre dışı bırakmak için bu biri için onClick="style.pointerEvents='none'"Disable the mouse scroll wheel zoom on embedded Google Map iframes

+0

Lütfen cevapların tam kodunu ekleyin. Yanıtın kalan kısmına ilişkin makalelerin bağlantıları zaman içinde –

+0

zaman aşımına uğrayabilir. 11'den önceki herhangi bir IE sürümünü desteklemeniz gerekiyorsa, pointer-olayı özniteliğine dayanan herhangi bir çözüm işe yaramaz. – Edward

3

ile bunu sağlamak için nasıl iyi bir blog yazısı var

var map; 
 
var element = document.getElementById('map-canvas'); 
 
function initMaps() { 
 
    map = new google.maps.Map(element , { 
 
    zoom: 17, 
 
    scrollwheel: false, 
 
    center: { 
 
     lat: parseFloat(-33.915916), 
 
     lng: parseFloat(151.147159) 
 
    }, 
 
    }); 
 
} 
 

 

 
//START IMPORTANT part 
 
//disable scrolling on a map (smoother UX) 
 
jQuery('.map-container').on("mouseleave", function(){ 
 
    map.setOptions({ scrollwheel: false }); 
 
}); 
 
jQuery('.map-container').on("mousedown", function() { 
 
    map.setOptions({ scrollwheel: true }); 
 
}); 
 
//END IMPORTANT part
.big-placeholder { 
 
    background-color: #1da261; 
 
    height: 300px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<html> 
 
    <body> 
 
     <div class="big-placeholder"> 
 
     </div> 
 
     
 
     
 
     <!-- START IMPORTANT part --> 
 
     <div class="map-container"> 
 
     <div id="map-canvas" style="min-height: 400px;"></div> 
 
     </div> 
 
     <!-- END IMPORTANT part--> 
 
     
 
     
 
     
 
     <div class="big-placeholder"> 
 
     </div> 
 
     <script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAIjN23OujC_NdFfvX4_AuoGBbkx7aHMf0&callback=initMaps"> 
 
     </script> 
 
    </body> 
 
</html>

0

İşte

<script> 
    function initMap() 
{ 
    var map = new google.maps.Map(document.getElementById('map'),  
    {center: {lat: -34.397, lng: 150.644},  
    scrollwheel: false,  
    zoom: 8 
    }); 
    } 

</script> 
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap" 
async defer>  
</script> 

örnek

olduğunu Kaynak: - Sadece google kaydırma davranışı sabit fark https://developers.google.com/maps/documentation/javascript/?csw=1#GMap2.Methods

İlgili konular