【问题标题】:onmouseover area shows div content at mouse coordinates [closed]onmouseover 区域在鼠标坐标处显示 div 内容 [关闭]
【发布时间】:2013-11-09 17:35:43
【问题描述】:

为什么这段代码不能与firefox和ie一起使用? 我正在使用 ie 10 和 firefox 25,使用 chrome 可以正常工作。 Firefox 显示 div 但不在正确的位置(鼠标坐标)。

javascript:

<script>
    function show(id) {
      document.getElementById(id).style.display = "block";
      var topPixel = event.clientY; 
      var leftPixel = event.clientX; 
      document.getElementById(id).style.top = topPixel + "px"; 
      document.getElementById(id).style.left = leftPixel + "px";
    };
    function hide(id) {
      document.getElementById(id).style.display = "none";
    };
</script>

CSS:

<style>
.show {display: none;position:absolute;}
</style>

带有php的html($data读取正确):

<img src="picture.jpg" width="100" height="100" border="0" alt="img" usemap="#img">
<map name="img">
<?php while ($data = mysql_fetch_array($db_erg, MYSQL_ASSOC)) { ?>      
    <area shape="rect" coords="10,10,30,30" href="" alt="#" title="" onmouseover="show('<?php echo $data['id'];?>');" onmouseout="hide('<?php echo $data['id'];?>');" />
    <div class="show" id="<?php echo $data['id'];?>">
        <?php echo $data['text'];?>
    </div>
<?php } ?>
</map>

功能:当鼠标在一个区域上时,应该打开一个具有相应内容和鼠标坐标的div。

【问题讨论】:

  • jsfiddle 好吗? jsfiddle.net
  • 该问题超出了问题所述的范围,以后不太可能重现。

标签: javascript position mouse onmouseover area


【解决方案1】:

http://jsfiddle.net/tX25a/2/

div=document.getElementsByTagName('div')[0];
btShow=document.getElementsByTagName('button')[0];
btHide=document.getElementsByTagName('button')[1];
btShow.onclick=function(){
    document.body.onmousemove=function(event){
        var e=event||window.event;
        div.style.left=e.clientX+"px";
        div.style.top=e.clientY+"px";
    }
    div.style.display="block";
}
btHide.onclick=function(){
    document.body.onmousemove=function(){};
    div.style.display="none";
}

在 FF17ESR、OS/2 上为我工作,也应该在 IE 和 WebKit 上工作。 如果您希望块在鼠标退出时消失并在鼠标悬停时出现,而不是在按钮单击时出现,那么只需定义适当的事件处理程序。

【讨论】:

  • ok thx 在 firefox 上可以,但 ie 不行
  • @user2961059 为什么?你测试过吗? e=event||window.event 是在 IE 上获取事件对象的推荐方式。什么失败了?我可以要控制台日志吗?
  • 您的脚本运行良好,我认为它们的读取 ID 有问题
  • @user2961059 他们是谁,他们的问题到底是什么?
  • 我读取了数据库的id,这样我就可以为每个div分配正确的区域...问题是div不会显示,因此我认为id有问题或其他什么否则
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-08
  • 2014-02-06
  • 1970-01-01
  • 2018-01-30
  • 1970-01-01
相关资源
最近更新 更多