图像映射与覆盖不工作在IE
Image map with overlay not working in IE
我正在尝试使用html图像地图创建一个覆盖的交互式地图。查看,请访问:http://www.surge.ca/testing/WFA2100/index.html
解释:
当你将鼠标悬停在地图的<area>
上时,它会显示一个带有链接的覆盖。为了防止当你移动到它时覆盖关闭,因为你不再悬浮在该区域上,我在它关闭覆盖之前使用setTimeout
。
问题:
它的工作原理就像我想在每个浏览器,但IE。在ie7和ie8中,当你将鼠标悬停在另一个<area>
上方的覆盖层上时,它会立即切换到该<area>
的覆盖层。
起初,我认为这是一个z-index问题,其中<area>
的z-index在覆盖之上,但我认为我的z-index设置正确。我也在想,这可能只是IE如何处理图像映射?
代码:
下面是设置事件的代码。
jQuery(function($){
// binds mouseenter and mouseleave to <area>
$('area').bind('mouseenter',function(){
sectionNum = this.hash;
sectionNum = sectionNum.replace(/#/,'');
showOverlay(sectionNum);
clearTimeout(timer);
}).bind('mouseleave', function(){
timerClose();
});
$('.map_info').bind('mouseenter', function(){
clearTimeout(timer);
}).bind('mouseleave', function(){
timerClose();
});
});
// sets timer before closing to allow cancel
var timer;
function timerClose(){
timer = setTimeout(function(){hideOverlay();},500);
}
问题是IE在悬停结束时清除setTimeout
。我没有运行你的代码,但我有同样的问题,cpu可以通过传递setTimeout
函数作为字符串来修复它。
例如,setTimeout(alert('hi'), 1000)
没有在一个功能上工作,在悬停状态下运行,但setTimeout("alert('hi')", 1000)
正在工作。在你的代码中可能会替换
timer = setTimeout(function(){hideOverlay();},500);
timer = setTimeout("function(){hideOverlay();}",500);
解决问题。IE运行的代码似乎在全局范围内以字符串传递。
我也可以看到你有jQuery在你的页面。有一个叫做hoverIntent的jQuery插件,它可以很好地处理悬停延迟。也许插件编写者编写了更多的跨浏览器代码。
让我知道它是否有效。:)
- 为什么这在IE中的工作方式与在Firefox中不同
- 点击选择Div不在IE上工作
- 如何编写在Chrome和IE中正常工作的JavaScript
- Target=_blank don'我不在mozilla和IE工作
- 如何隐藏空<span>在IE中使用javascript.(注意,在其他浏览器中工作正常)
- 读取在具有IE的工作程序中生成的对象URL
- Json到CSV下载,可以在chrome中工作,但不能在IE浏览器中工作
- jQUery Code没有'我不在IE工作
- 为什么这个书签脚本是't在IE工作
- 类构造函数super()没有'我不在IE工作
- JavaScript onclick在IE 9中工作两次,然后停止
- HTML5视频无法在chrome上工作,在服务器上托管后的IE,mov文件中的视频(quicktime格式)
- JSSOR转盘滑块在IE中不工作
- Iframe加载调整大小在Chrome中工作,但不能在IE或Firefox中工作
- onmousemove=null不会'我不在IE工作
- Javascript/AAJAX在Opera中不起作用,在FF/IE/Chrome中完美工作
- execCommand('另存为',true,'data.csv');不在IE工作
- 我的剧本赢了'不能在IE中工作(甚至9)?修改复制文本的简单javascript
- 纯Javascript: onClick切换行/图像:Firefox/Chrome -工作:IE -不工作
- jQuery菜单不工作ie(文档模式:怪癖)