首先我要说明的是,我要的这个效果在ff3.5下没有问题。但是,我希望这个效果在ff1.5下也能实现。 我给出一段可以运行的代码,这段代码中有一个背景为蓝色的div,如果运行于ff3.5或其他浏览器,当你用鼠标点击那个蓝色的div时,你不松鼠标,可以把它拖拽到“超出浏览器可见区域外”的地方,这个就是我想要的效果。 如果这段代码运行在ff1.5下,鼠标离开浏览器时,div就脱离了控制了。 这个问题我在之前也提问过,但是我也想找到ff1.5下的解决办法。 我给出ff1.5的下载地址:http://download.csdn.net/source/2592859 ,不要积分的 代码如下: <body style="width:100%;height:100%;">
<div id="boat" style="position:absolute;background-color:#003366;width:200px;height:200px;"></div>
</body>
<script>
var o=document.getElementById('boat');function mousedown(){
if(window.captureEvents){
window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
}
}function move1(ev){
o.style.left=mouseCoords(ev).x+"px";
}
function mouseup(){
if(window.captureEvents){
window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
}}document.onmousedown=mousedown;
document.onmousemove=function(event){move1(event);}
document.onmouseup=mouseup;
function mouseCoords(ev) {
ev = ev || window.event;
if (ev.pageX || ev.pageY) {
return {
x : ev.pageX,
y : ev.pageY
};
}
return {
x : ev.clientX + document.body.scrollLeft - document.body.clientLeft,
y : ev.clientY + document.body.scrollTop - document.body.clientTop
};
}document.onmouseout=function(){
//alert('doc out');
}
</script> 拜托大家了 大家不要着急,不管先后,答对都有分的。
<div id="boat" style="position:absolute;background-color:#003366;width:200px;height:200px;"></div>
</body>
<script>
var o=document.getElementById('boat');function mousedown(){
if(window.captureEvents){
window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
}
}function move1(ev){
o.style.left=mouseCoords(ev).x+"px";
}
function mouseup(){
if(window.captureEvents){
window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
}}document.onmousedown=mousedown;
document.onmousemove=function(event){move1(event);}
document.onmouseup=mouseup;
function mouseCoords(ev) {
ev = ev || window.event;
if (ev.pageX || ev.pageY) {
return {
x : ev.pageX,
y : ev.pageY
};
}
return {
x : ev.clientX + document.body.scrollLeft - document.body.clientLeft,
y : ev.clientY + document.body.scrollTop - document.body.clientTop
};
}document.onmouseout=function(){
//alert('doc out');
}
</script> 拜托大家了 大家不要着急,不管先后,答对都有分的。
不过很奇怪楼主为什么要考虑ff,用ff的用户都是用新版的,因为浏览器是用来上网的,上网了浏览器就可以升级了,所以不必担心用户会用很旧的ff浏览器。
楼主干嘛一定要兼容ff1.5,能兼容3.0或以上就ok了,
个人觉得确实没必要.
应该够用,呵呵~~
这个兄弟给出的这个代码,我已经试过第二次了,不好意思,还是不符合我的要求啊。超出浏览器可见区域后,就不能“牢牢抓住”div了。
IBM_忽悠,您彻底误解我的意思了,我要的就是要超出范围,还能正常移动。而不是“x、y超出了浏览器的的坐标位置就不能继续拖”
在实际应用中,不可能div里只有纯文本。但是,我还是想把代码贴出来,大家帮我看看。代码只作了一处修改。
<body style="width:100%;height:100%;">
<div id="boat" style="position:absolute;background-color:#003366;width:200px;height:200px;">
???
</div>
</body>
<script>
var o=document.getElementById('boat');function mousedown(){
if(window.captureEvents){
window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
}
}function move1(ev){
o.style.left=mouseCoords(ev).x+"px";
}
function mouseup(){
if(window.captureEvents){
window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
}}document.onmousedown=mousedown;
document.onmousemove=function(event){move1(event);}
document.onmouseup=mouseup;
function mouseCoords(ev) {
ev = ev || window.event;
if (ev.pageX || ev.pageY) {
return {
x : ev.pageX,
y : ev.pageY
};
}
return {
x : ev.clientX + document.body.scrollLeft - document.body.clientLeft,
y : ev.clientY + document.body.scrollTop - document.body.clientTop
};
}document.onmouseout=function(){
//alert('doc out');
}
</script><div id="boat" style="position:absolute;background-color:#003366;width:200px;height:200px;">
如果把这里改成非文字的东西,我的要求就打不到了
</div>
大家帮我看看吧,(我给出ff1.5的下载地址:http://download.csdn.net/source/2592859 ,不要积分的,而且安装1.5于其他目录不影响您现在已有的ff版本)