改得有点多,主要是用了一种兼容的写法:e = window.event || e 和 e.clientX || e.pageX另外FF好象不支持releaseCapture和setCapture(本人以前从来没用过这两个方法,猜的)
就把这两个方法去掉了<html>
<head></head><body>
<button id="button1" style="position:absolute;left:300px;top:100px;weight:80px;height:80px;cursor:move">
drag here</button>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
</body>
</html><script type="text/javascript">
var left,top;
var x_0,y_0;
var isMove = false;
var thebutton = document.getElementById("button1");thebutton.onmousedown = function(e){
e = window.event || e;
left = parseInt(thebutton.style.left.replace(/\D*/gi,""));
top = parseInt(thebutton.style.top.replace(/\D*/gi,""));
x_0 = e.clientX || e.pageX;
y_0 = e.clientY || e.pageY;
isMove = true;
}
thebutton.onmousemove = function(e){
e = window.event || e;
if(isMove){
var x_1 = e.clientX || e.pageX;
var y_1 = e.clientY || e.pageY;
thebutton.style.left = left + (x_1 - x_0) + "px";
thebutton.style.top = top + (y_1 - y_0) + "px";
}
}
thebutton.onmouseup = function(){
isMove = false;
}
</script>
就把这两个方法去掉了<html>
<head></head><body>
<button id="button1" style="position:absolute;left:300px;top:100px;weight:80px;height:80px;cursor:move">
drag here</button>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
</body>
</html><script type="text/javascript">
var left,top;
var x_0,y_0;
var isMove = false;
var thebutton = document.getElementById("button1");thebutton.onmousedown = function(e){
e = window.event || e;
left = parseInt(thebutton.style.left.replace(/\D*/gi,""));
top = parseInt(thebutton.style.top.replace(/\D*/gi,""));
x_0 = e.clientX || e.pageX;
y_0 = e.clientY || e.pageY;
isMove = true;
}
thebutton.onmousemove = function(e){
e = window.event || e;
if(isMove){
var x_1 = e.clientX || e.pageX;
var y_1 = e.clientY || e.pageY;
thebutton.style.left = left + (x_1 - x_0) + "px";
thebutton.style.top = top + (y_1 - y_0) + "px";
}
}
thebutton.onmouseup = function(){
isMove = false;
}
</script>
<head>
<script type="text/javascript">
var left,top;
var x_0,y_0;
var isMove = false;function getFocus(obj,evt)
{
left = parseInt(obj.style.left);
top = parseInt(obj.style.top);
evt = evt ? evt : (window.event ? window.event : null);
x_0 = evt.clientX;
y_0 = evt.clientY;
isMove = true;
}
function move(obj,evt)
{
evt = evt ? evt : (window.event ? window.event : null);
if(isMove)
{
var x_1 = evt.clientX;
var y_1 = evt.clientY;
obj.style.left = left + (x_1 - x_0) + "px";
obj.style.top = top + (y_1 - y_0) + "px";
}
}
function stopMove(obj)
{
isMove = false;
}
</script>
</head><body>
<button style="position:absolute;left:300px;top:100px;weight:80px;height:80px;cursor:move" onMouseDown="getFocus(this,event)" onMouseUp="stopMove(this)" onMouseMove="move(this,event)">
drag here</button>
</body>
</html>