首先我要说明的是,我要的这个效果在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>  拜托大家了  大家不要着急,不管先后,答对都有分的。

解决方案 »

  1.   

    把window.captureEvents去掉,其它1.5还都是支持的。
    不过很奇怪楼主为什么要考虑ff,用ff的用户都是用新版的,因为浏览器是用来上网的,上网了浏览器就可以升级了,所以不必担心用户会用很旧的ff浏览器。
      

  2.   

    IE的话还要考虑一下IE6,FF就不用了吧
      

  3.   

    这个还真没什么印象了,
    楼主干嘛一定要兼容ff1.5,能兼容3.0或以上就ok了,
    个人觉得确实没必要.
      

  4.   

    http://blog.csdn.net/IBM_hoojo/archive/2010/07/02/5708697.aspx
    应该够用,呵呵~~
      

  5.   

    楼上三位说的都没错,firefox1.5的版本是低了一点,但是我还是想兼容1.5。兼容做的不彻底,心理不舒服,不踏实。尤其ff是我比较喜欢的浏览器,我用的第一个版本就是1.5,况且我用之后的版本也觉得和1.5没有太大的区别,拜托大家帮我看看这个问题吧。
      

  6.   


    这个兄弟给出的这个代码,我已经试过第二次了,不好意思,还是不符合我的要求啊。超出浏览器可见区域后,就不能“牢牢抓住”div了。
      

  7.   

    那就判断下拖动的坐标,如果当前x、y超出了浏览器的的坐标位置就不能继续拖动或是将x、y设置0或是宽度、高度即可
      

  8.   


    IBM_忽悠,您彻底误解我的意思了,我要的就是要超出范围,还能正常移动。而不是“x、y超出了浏览器的的坐标位置就不能继续拖”
      

  9.   

    我是楼主:我发现把被拖动的div里加入纯文字,在ff1.5下,div就可以被拖入非可见区域里。这虽然符合了我的要求,但是
    在实际应用中,不可能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版本)