黑马程序员技术交流社区

标题: javascript和CSS的交互?为什么大图片不随鼠标指针的移动而移动 [打印本页]

作者: $love    时间: 2013-4-20 21:11
标题: javascript和CSS的交互?为什么大图片不随鼠标指针的移动而移动
本帖最后由 $love 于 2013-4-21 18:42 编辑

<!--图片的名称  小图片big_1  对应的大图片名称small_1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>商品列表</title>
<!--设置容器的Css样式-->
<style type="text/css">
table {
        margin:0px auto;
        width:500px;
        border:solid 1px #999;
}
div {
        width:280px;
        height:280px;
        display:none;
        border:solid 1px #000;
        z-index:2;
        position:absolute;
}
</style>
</head>

<body>
<!--此页面的图片路径都是相对路径-->
<table border="1" cellpadding="0" cellspacing="0">
  <tr>
    <td>商品图片</td>
    <td>商品名称</td>
    <td>商品价格</td>
  </tr>
  <tr>
    <td><img src="images/small_1.jpg"  alt='1' /></td>
    <td>闪亮双色超漂亮蝴蝶耳</td>
    <td>28.00元</td>
  </tr>
  <tr>
    <td><img src="images/small_2.jpg"  alt='2'/></td>
    <td>皇冠09年完美芦荟胶10支装40g/支 接受验货</td>
    <td>96.00元</td>
  </tr>
  <tr>
    <td><img src="images/small_3.jpg" alt='3'/></td>
    <td>诺基亚s7300超薄手机</td>
    <td>225.00元</td>
  </tr>
  <tr>
    <td><img src="images/small_4.jpg" alt='4'/></td>
    <td>2013夏装主款短袖连衣</td>
    <td>88.00元</td>
  </tr>
  <tr>
    <td><img src="images/small_5.jpg"  alt='5'/></td>
    <td>联想B470电脑</td>
    <td>78.23元</td>
  </tr>
</table>
<div id='Divimg'><img src="images/big_1.jpg"/></div>
<script type="text/javascript">
        var img=document.getElementsByTagName("img");
        //循环设置鼠标移动到图片和移出图片上触发事件
        for(var i=0;i<img.length-1;i++){
                //鼠标移动到图片上触发事件
                        img.onmouseover=function(){
                                        var x=event.clientX;                //鼠标所在浏览器的X轴坐标
                                        var y=event.clientY;                //鼠标所在浏览器的Y轴坐标
                                        document.getElementById('Divimg').style.display='block';                        //显示Div层
                                        //设置div层的left坐标当前鼠标所在浏览器的X轴坐标加上滚动条向左滚动的坐标
                                        document.getElementById('Divimg').style.left=x+parseInt(document.documentElement.scrollLeft)+'px';
                                        document.getElementById('Divimg').style.top=y+parseInt(document.documentElement.scrollTop)+'px';
                                        //获取当前图片的alt属性以设置div的图片路径
                                        var name=this.getAttribute('alt');
                                        //重新获取div层img标签对应的图片路径
                                        document.getElementById('Divimg').firstChild.src='images/big_'+name+'.jpg';               
                                }
                        //鼠标移出图片时触发事件
                        img.onmouseout=function(){
                                document.getElementById('Divimg').style.display='none';                                //隐藏Div层
                        }
                }
</script>
</body>
</html>

作者: JavaUtil    时间: 2013-4-20 21:28
呵呵 这个问题我也遇到过,自己调试了一下才发现问题。
其实问题不在代码上。而是浏览器。
火狐不支持这个事件的相应。而IE9.0版本也取消了这个事件相应。
我用IE9.0版本的程序人员调试功能把IE的标准降到8.0、7.0、6.0它都是可以运行的。

作者: $love    时间: 2013-4-21 09:03
JavaUtil 发表于 2013-4-20 21:28
呵呵 这个问题我也遇到过,自己调试了一下才发现问题。
其实问题不在代码上。而是浏览器。
火狐不支持这个 ...

谢谢指教!我等会试一下!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2