在 Internet Explorer 9 中,使用 Google Maps API v2(已弃用),使用滚轮进行缩放也会导致页面滚动。有谁知道这个问题的解决方法?(不幸的是,我们还不能将我们的代码库升级到 v3。)在早期版本的 Internet Explorer 中不会发生这种行为。
问问题
2204 次
4 回答
1
网上很多人似乎都有同样的问题,但我发现没有发布解决方案。所以这是我的:
由于不可滚动组件不会引发滚动事件,并且该事件在文档对象上是不可取消的,因此无法使用标准 DOM。幸运的是,有一个名为“mousewheel”的jQuery小插件,它为jQuery添加了“mousewheel”和“unmousewheel”事件绑定功能。“mousewheel”事件调用的函数可以返回false来取消它,然后文档不接收它。所以我测试了 IE9 或更大版本,并在必要时下载这个小插件,将它应用到保存地图的 div 上。
于 2011-06-18T09:47:12.170 回答
1
请试试
$('#map').mouseover( function(){
document.body.style.overflow = 'hidden';
$('#wrap').css('margin-right','17px');
console.log('mouse -> map , ' , document.body.scroll, ' / ' , document.body.style.overflow );
} );
$('#map').mouseout( function(){
document.body.style.overflow = 'auto';
$('#wrap').css('margin-right','0px');
console.log('mouse map -> , ' , document.body.scroll, ' / ' , document.body.style.overflow);
} );
此代码隐藏滚动条。我发现这只是在 IE 中禁用滚动的一种方法。
document.body.scroll = "no"
不工作。( IE9 )
#map - 是带有谷歌地图的 div,#wraper - 是带有所有页面的 div。
$('#wrap').css('margin-right','17px');
// 只是为了在左滚动条隐藏/显示时保持页面宽度
于 2011-07-11T12:13:14.597 回答
0
要使用 PrototypeJS 1.7(如 Marek 和 theazureshadow 建议)解决此问题,您可以在 IE9 上使用:
$(gMapDiv).observe('mousewheel', function(event){
event.stop();
});
于 2011-11-22T09:09:05.573 回答
0
我有同样的问题,并以这种方式解决:当光标在地图元素上并且滚轮移动时,整个页面滚动将被禁用。只有地图会放大或缩小
$('#map').live("mouseover",function() {
$('#map').mousewheel(function(event) {
stopWheel(event);
});
})
function stopWheel(e){
if(!e){ /* IE7, IE8, Chrome, Safari */
e = window.event;
}
if(e.preventDefault) { /* Chrome, Safari, Firefox */
e.preventDefault();
}
e.returnValue = false; /* IE7, IE8 */
}
于 2012-06-25T09:57:48.627 回答