注册 登录
编程论坛 JavaScript论坛

图片跟随鼠标移动问题

zhuxuanzhu 发布于 2011-03-03 14:17, 871 次点击
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.
<html xmlns="http://www.
<head>
    <title></title>
    <script type="text/javascript">
        document.onmousemove = function () {
            var x = event.clientX;
            var y = event.clientY;
            var div1 = document.getElementById("div1");
            if (!div1) {
                return;
            }
            document.getElementById("xxx").value = x;
            document.getElementById("yyy").value = y;
            //image1.style.position = "absolute";
            div1.style.top = y;  //左上角的坐标
            div1.style.left = x;
        }
    </script>
</head>
<body>
    <div id="div1" >
        <img alt="kaora" title="kaora" src="1.jpg" id="image1"  /><br />
    hello
    </div>
    <br />
    <div>
        <input type="text" id="xxx" /><br />
        <input type="text" id="yyy" />
    </div>
</body>
</html>

上面是源代码,我发现鼠标移动的时候,text标签里的值是跟着改变的,但是图片怎么也不动。。。求高手解释。。

[ 本帖最后由 zhuxuanzhu 于 2011-3-3 14:18 编辑 ]
9 回复
#2
zhuxuanzhu2011-03-03 14:50
问题在IE9上···不知道为什么,IE8包括以下的版本都可以移动图片,但是IE9只是获取了坐标值,却无法移动图片。。。。
#3
aspic2011-03-03 16:58
没有IE9 无法测试
#4
aspic2011-03-03 16:59
你可以给div1设置一个背景颜色或者边框看看
然后div1.style.position = "absolute";
#5
zhuxuanzhu2011-03-04 09:47
回复 4楼 aspic
我有设定div的style.positio为absolute的,加了边框,还是没用,IE9,chrome 9都没用。。
#6
aspic2011-03-04 10:33
程序代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. xmlns="http://www. <title></title>
    <script type="text/javascript">
        document.onmousemove = function (evt) {
            var e = evt || window.event;
            var x = e.clientX;
            var y = e.clientY;
            var div1 = document.getElementById("div1");
            if (!div1) {
                return;
            }
            document.getElementById("xxx").value = x;
            document.getElementById("yyy").value = y;
            div1.style.position = "absolute";
            div1.style.top = y + 'px';  //左上角的坐标
            div1.style.left = x + 'px';
        }
    </script>
</head>
<body>
    <div id="div1" >
        <img alt="kaora" title="kaora" src="1.jpg" id="image1"  /><br />
    hello
    </div>
    <br />
    <div>
        <input type="text" id="xxx" /><br />
        <input type="text" id="yyy" />
    </div>
</body>
</html>
IE9不知道 但是chrome9跟FF肯定是没问题的
#7
gupiao1752011-03-04 11:13
估计IE9学了火狐,第16行,也需要多加一个‘PX’才可以, div1.style.top = y + 'px';  //左上角的坐标

不过IE9已经和火狐很接近了,基本完全符合W3C标准。支持CSS3,所以IE6都没问题了。那IE9更好说话。一般火狐可以的,IE9肯定也可以!
#8
zhuxuanzhu2011-03-04 11:16
回复 6楼 aspic
发现了哪里错了,坐标要加上"px"变成字符串付给x,y,以前IE8,IE7什么的对标准支持不够,所以不加px也可以移动。
#9
zhuxuanzhu2011-03-04 14:41
回复 7楼 gupiao175
嗯!的确是这样,加个"px"就可以了
#10
程海之源2011-03-07 13:00
按w3c标准是要有单位的。中间还不能有空格,空了也不能识别
1