[英]Can someone help me understand why this Javascript works everywhere but IE?
我在要构建的网站的首页上使用jQuery Vector Map( http://jqvmap.com/ )。
这个特殊的地图要求将其放置的div设置为内嵌大小。
为了使此地图具有响应性,我设置了以下代码:
HTML占位符:
<div id="map" style="width: 674px;height: 384px;"></div>
脚本:
<script src="{{ asset('components/jqvmap/jqvmap/jquery.vmap.min.js') }}"></script>
<script src="{{ asset('components/jqvmap/jqvmap/maps/jquery.vmap.usa.js') }}"> </script>
<script>
function createMap() {
var mapWidth = document.getElementById("map").clientWidth;
var mapHeight = mapWidth * .55;
document.getElementById("map").style.width = mapWidth + 'px';
document.getElementById("map").style.height = mapHeight + 'px';
jQuery('#map').vectorMap({
map: 'usa_en',
backgroundColor: null,
borderColor: '#818181',
borderOpacity: 0.85,
borderWidth: 1,
color: '#f4f3f0',
enableZoom: true,
hoverColor: '#c9dfaf',
hoverOpacity: null,
normalizeFunction: 'linear',
scaleColors: ['#b6d6ff', '#005ace'],
selectedColor: '#c9dfaf',
selectedRegion: null,
showTooltip: true,
onRegionClick: function(element, code, region)
{
$(location).attr('href','{{ route("search") }}?state='+ code);
}
});
}
$(document).ready(function() {
createMap();
});
$(window).resize(function(){
createMap();
});
</script>
如您所见,我在页面加载时运行JS createMap()函数,此函数从设置div的大小开始以确保其正确适合。
然后,随着每个页面调整大小,将再次创建地图,以使其适合自身。
我对JS的了解不那么强,更多是后端开发人员,所以我不知道为什么这在IE中表现不佳。
基本上,有时它可以正确加载,但是其他一些则可以在IE中创建非常大的地图。
“我……更多是后端开发人员,所以我无法弄清楚为什么它在IE中表现不佳。” 不用担心,其他任何人也不能:)
一些googlin显示,很多人都报告了clientWidth,特别是在IE8中存在错误/功能异常。
也许试试这个:
var mapWidth = jQuery("#map").width()
代替这个:
var mapWidth = document.getElementById("map").clientWidth;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.