各位高手帮忙看一下这一段代码
我希望能在FF中实现下段代码的效果,下段代码只适合IE中,在FF中就拖不动了,不明原因,如果哪位高手能解决,麻烦贴一下代码,感激不尽。
各位高手可以自己加张图片在IE中看看效果。。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title></title>
<style>
body{background:#000; }
.box{
width:360px; 
height:360px; 
border:5px solid #555;
overflow:hidden; 
position:relative;
margin:0 auto; 
}
.box img{
cursor:move;
position:absolute;
left: -10px;
top: -7px;
}
</style>
</head>
<body>
<div class="box" id="map"><img src="ditu.jpg"></div>
</body>
<script type="text/javascript">
function drag(box) {
var _box = document.getElementById(box),el = _box.getElementsByTagName("IMG")[0],
r = el.offsetWidth - _box.offsetWidth,bi = el.offsetHeight - _box.offsetHeight;
function getXY(e) {
return e ? [e.pageX, e.pageY] : [event.clientX, event.clientY]
};
el.onmousedown = function(e) {
var a = getXY(e),b = [el.offsetLeft,el.offsetTop];
this.setCapture ? this.setCapture() : e.preventDefault();
document.onmousemove = function(e) {
var c = getXY(e);
el.style.left = Math.max( - r, Math.min(0, c[0] - a[0] + b[0]));
el.style.top = Math.max( - bi, Math.min(0, c[1] - a[1] + b[1]));
}
};
document.onmouseup = function(e) {
e || el.releaseCapture();
document.onmousemove = null;
}
};
drag('map');
</script>
</html>

解决方案 »

  1.   

    Javascript 移动对象之完美解决
    http://jnwentao.com/bbs/viewthread.php?tid=3&extra=page%3D1
    这是我以前写的,花了不少时间,有问题再联系我
      

  2.   

    谢谢,但是我的问题是想让一张大图在一个小框中显示,图其余的部分overflow:hidden;
    固定的div始终是在大图中的,无论怎么拖大图,它的边界不会显示在div中。
    希望高手指点
      

  3.   

    试着去理解一下
    我写的代码中有边界限定
    只要把position改为相对(relative)
    并且把边界限定位置改一下,自然就可以解决了