CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  HTML(CSS)

在限定范围内自由可以用鼠标自由拖动并且实现双击跳转连接的jscript程序??

楼主peiyan_lin()2003-12-03 00:26:27 在 Web 开发 / HTML(CSS) 提问

如题 问题点数:50、回复次数:1Top

1 楼wanghr100(灰豆宝宝.net(努力工作))回复于 2003-12-03 07:57:17 得分 50

<script>  
  function   beginDrag(elementToDrag,event)     {  
   
  //计算元素原左上角与鼠标的距离  
  //moveHandler要这值  
   
  var   delatX=event.clientX-parseInt(elementToDrag.style.left);  
  //   只水平移动   var   delatY=event.clientY-parseInt(elementToDrag.style.top);  
   
  //注册响应mousemove和mousedown事件后的mouseup事件的处理程序  
   
  if(document.addEventListener)   {     //2级DOM事件模型  
  //注册捕捉事件处理程序。  
  document.addEventListener("mousemove",moveHandler,true);  
  document.addEventListener("mouseup",upHandler,true);  
  }  
  else   if(document.attachEvent)   {   //IE5+   的事件模型  
  //在IE事件模型中,我们不能捕捉事件,所以只有当事件起泡到这些处理程序时,  
  //它们才被触发.   假设不存在干涉元素,   处理了事件后它们就停止传播  
  document.attachEvent("onmousemove",moveHandler);  
  document.attachEvent("onmouseup",upHandler);  
  }  
  else   {   //IE4事件模型  
  //IE4我们不能使用attachEvent方法,所以存储了以前赋予的处理  
  //程序后,直接赋予新的事件处理程序,这样可以恢复旧的处理程序.  
  //注意,这样依赖于事件起泡.  
  var   oldmovehandler=document.onmousemove;  
  var   olduphandler=document.onmouseup;  
  document.onmousemove=moveHandler;  
  document.onmouseup=upHandler;  
  }  
   
  //我们处理了该事件,不要再让其他元素看见.  
  if(event.stopPropagation)   event.stopPropagation();   //2   级DOM  
  else   event.cancelBubble=true; //IE  
   
  //下面禁止执行默认动作  
  if(event.preventDefault)   event.preventDefault();     //2级DOM  
  else   event.returnValue=false; //IE  
   
  /*     这是元素被拖动时捕捉mousemove事件的处理程序.  
    *     它负责移动元素  
    */  
   
  function   moveHandler(e)     {  
  if(!e)     e=window.event; //IE事件模型;  
  //把元素移动到鼠标当前的位置,根据初始鼠标点击的偏移量进行调整  
  if(e.clientX-delatX<300   &&   e.clientX-delatX>0)       //e.clientX-startelement.style.left;  
  elementToDrag.style.left=(e.clientX-delatX)+"px";    
  //   只水平移动   elementToDrag.style.top=(e.clientY-delatY)+"px";  
  else   if(e.clientX-delatX<0)     //滑动条不能小于0px  
  elementToDrag.style.left=0+"px";  
  else //滑动条不能大于300px  
  elementToDrag.style.left=300+"px";  
  //不要再让其他元素看到该事件.  
  if(e.stopPropagation)   e.stopPropagation();     //2级DOM  
  else   e.cancelBubble=true; //IE  
  }  
   
  /*     这是捕捉拖移结束最后发生的mouseup事件的处理程序.  
    */  
  function   upHandler(e)   {  
  if(!e)   e=window.event; //IE事件模型.  
  //注销捕捉事件程序.  
  if(document.removeEventListener)   { //DOM事件模型  
  document.removeEventListener("mouseup",upHandler,true);  
  document.removeEventListener("mousemove",moveHandler,true);  
  }  
  else   if(document.detachEvent)   { //IE5+   事件模型  
  document.detachEvent("onmouseup",upHandler);  
  document.detachEvent("onmousemove",moveHandler);  
  }  
  else     { //IE事件模型  
  document.onmouseup=olduphandler;  
  document.onousemove=oldmovehandler;  
  }  
  //不要再让事件进一步传播.  
  if(e.stopPropagation)   e.stopPropagation();     //2级DOM  
  else   e.cancelBubble=true; //IE  
                      }  
   
  }  
   
  </script>  
  <div   style="position:absolute;   left:100px;top:100px;  
  backgroud-color:white;border:solid   back;">  
  <div   style="backgroud-color:gray;border-bottom:dotted   black;  
  padding:3px;font-family:sans-serif;font-weight:bold;"  
  onmousedown="beginDrag(this.parentNode,event);"  
  ondblclick="alert('改成你需要的.')">  
  Drag   Me  
  </div>  
   
   
  //这是限制水平移动的,0-300之间的.你可以换成你需要的.上面的注释很明白了.  
  //双击可以跳转...就是用ondbclick捕获双击事件..Top

相关问题

  • 如限定CoolBar(或ToolBar)的拖动范围?象IE那样。
  • 请问如何在OnMouseDown中区分拖动控件和鼠标双击
  • 如何禁止系统处理或自己处理拖动标题栏和双击标题栏
  • 请教高手:如何使双击标题栏也不能最大化窗口,也不能用拖动方式 87分
  • 谁能帮我?我在VIEW里画图,画好后怎么选中它,用鼠标拖动变化大小,双击设置属性?
  • 各位大侠,请问如何在view中拖动用GDI+绘制出来的图形,并能处理双击和右击该图形的事件?
  • 拖动窗口
  • 拖动文字
  • 如何拖动
  • 50求js源码:像window的文件列表,通过拖动鼠标该表table的列宽,双击分隔线自动调整为内容的宽度,还可以点击排序?

关键词

  • 双击

得分解答快速导航

  • 帖主:peiyan_lin
  • wanghr100

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo