下午好,
我的谷歌地图和css“transform:scale”存在问题。 我的目标是如果地图悬停,则将地图缩放到1.1。但如果我这样做,我再也不能点击了标记。我试图用jquery解决它,但我没有成功。 这里有谁有解决方案?
这是一个小提琴:JSFIDDLE
我认为首先切换缩放后的尺寸,然后加载地图,然后切换到旧尺寸将使其工作,但没有成功。
这是我的失败尝试..
$("#map").hover(function(){
$("#map").width(880).height(617.1).load('/index.html', function () {
initialize();
}).width(800).height(561);
});
感谢您的帮助
Manuel Strohmaier
答案 0 :(得分:1)
问题很容易解释,但不幸的是我现在还没有很好的解决方案。
在图像上我标记了矩形,它显示了现在的确切位置,即对谷歌地图标记上的点击操作做出响应。简单地说,当您使用CSS缩放地图时,每个图像也会缩放,但位置坐标(left, right, top, bottom
)不会改变。
Theoreticaly您可以检查Google Map的代码并以任何方式修复此位置,但是:
答案 1 :(得分:1)
你使用变换的强度是什么:规模? 为什么不用缩放呢?
检查我编辑的代码片段,可能对您有帮助......
function initialize() {
var myLatlng = new google.maps.LatLng(-25.363882, 131.044922);
var myLatlng2 = new google.maps.LatLng(-22.363882, 125.044922);
var mapOptions = {
zoom: 4,
center: myLatlng
};
var map = new google.maps.Map(document.getElementById('map'), mapOptions);
var contentString = "Pls help me to get the right position :)"
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var marker1 = new google.maps.Marker({
position: myLatlng,
map: map,
title: 'First Marker'
});
var marker2 = new google.maps.Marker({
position: myLatlng2,
map: map,
title: 'Sec Marker'
});
google.maps.event.addListener(marker1, 'mouseover', function () {
map.setZoom(14);
infowindow.open(map, marker1);
});
}
google.maps.event.addDomListener(window, 'load', initialize);

#map {
height: 400px;
width: 400px;
margin: auto;
padding: 0px;
top:100px;
}
.scale {
transition: all .2s ease-in-out;
}
#map.scale:hover {
transform: scale(1.9);
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
<body>
<div id="map" class="map scale"></div>
</body>
&#13;