CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

怎样实现按下鼠标并拖动来画矩形框?

楼主hungboy0(斯考)2006-03-14 23:41:25 在 Web 开发 / JavaScript 提问

我想实现的功能是画出一个框来表示此区域被选中,请问怎样实现? 问题点数:20、回复次数:4Top

1 楼micker(希望下一代别再贫穷)回复于 2006-03-15 10:14:05 得分 0

没有见过现成的,自己写吧。Top

2 楼victor26(漂流纸船)回复于 2006-03-15 10:46:36 得分 10

<!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN">  
  <HTML>  
  <HEAD>  
  <TITLE>rect   sample</TITLE>  
  <script   Language="javascript">  
  var   startX,startY,endX,endY;  
  var   dragFlag;  
   
  function   doMouseDown(){  
  dragFlag   =   0;  
  startX   =   event.clientX;  
  startY   =   event.clientY;  
  document.all.rect.style.pixelLeft   =   startX;  
  document.all.rect.style.pixelTop   =   startY;  
  document.all.rect.style.pixelHeight   =   0;  
  document.all.rect.style.pixelWidth   =   0;  
  }  
   
  function   doMouseUp(){  
  dragFlag   =   1;  
  }  
   
  function   doMouseMove(){  
  if(dragFlag   ==   0){  
  endX   =   event.clientX;  
  endY   =   event.clientY;  
  nowHeight   =   endY   -   startY;  
  nowWidth   =   endX   -   startX;  
   
  if(nowHeight<0){  
  document.all.rect.style.pixelTop   =   endY;  
  nowHeight   =   -1*nowHeight;  
  }  
  if(nowWidth<0){  
  document.all.rect.style.pixelLeft   =   endX;  
  nowWidth   =   -1*nowWidth;  
  }  
   
  document.all.rect.style.pixelHeight   =   nowHeight;  
  document.all.rect.style.pixelWidth   =   nowWidth;  
  }  
  }  
   
  document.onmousemove   =   doMouseMove;  
  document.onmousedown   =   doMouseDown;  
  document.onmouseup   =   doMouseUp;  
   
  </script>  
  <div   id="rect"   style="position:absolute;left:0px;   top:0px;width:0;height:0;border-top:   1px   dotted   #999999;border-left:   1px   dotted   #999999;border-right:   1px   dotted   #999999;border-bottom:   1px   dotted   #999999;">  
  </div>  
  </HEAD>  
   
  <BODY>  
  </BODY>  
  </HTML>  
  注:以上代码只是雏形,实现了拖动矩形的功能,你可以根据自己的需要进行改动。Top

3 楼clare2003(忘情火)回复于 2006-03-15 12:01:36 得分 10

<html   xmlns:v="urn:schemas-microsoft-com:vml">  
  <head>  
  <STYLE>  
  v\:*   {   Behavior:   url(#default#VML)   }  
  </STYLE>  
  <script   language="JavaScript">  
  <!--  
  var   x=0;  
  var   y=0;  
  var   isMouseDown=false;  
  var   newRect=null;  
   
  document.onmousedown=function(){  
  x=window.event.clientX;  
  y=window.event.clientY;  
  isMouseDown=true;  
  if(newRect==null)  
  newRect=document.createElement('<v:rect   filled="false"   colors="30%   yellow,70%   green"   style="position:absolute;   top:'+   y   +';left:'+   x   +';width:1px;height:1px"></v:rect>');  
  else{  
  newRect.style.top=y;  
  newRect.style.left=x;  
  newRect.style.width="1px";  
  newRect.style.height="1px";  
  }  
  newRect.style.border="2px   solid   blue";//这里设置border的样式  
  }  
  document.onmousemove=function(){  
  if(isMouseDown==false) return;  
  document.body.insertBefore(newRect);  
  var   mx=window.event.clientX;  
  var   my=window.event.clientY;  
  if(mx>x){  
  newRect.style.width=mx-x;  
  }  
  else{  
  newRect.style.width=x-mx;  
  newRect.style.left=mx;  
  }  
  if(my>y){  
  newRect.style.height=my-y;  
  }  
  else{  
  newRect.style.height=y-my;  
  newRect.style.top=my;  
  }  
   
  }  
  document.onmouseup=function(){  
  x=0;  
  y=0;  
  isMouseDown=false;  
  }  
   
  //-->  
  </script>  
  </head>  
  <body   onselectstart="return   false;">  
   
  </body>  
  </html>Top

4 楼hungboy0(斯考)回复于 2006-03-15 13:16:26 得分 0

谢谢楼上两位,正是我想要的,非常感谢:)Top

相关问题

  • 请问如何在FormView中拖动鼠标时可以拖动出一个虚线边框的矩形框?
  • 怎么实现用鼠标拖一个框放大视图?使视图的放大倍数和鼠标拖动的矩形的大小成方比呢?放大后的视图的位置怎么确定呢?
  • 如何定义鼠标绘制矩形框
  • 怎样用鼠标拖动没有标题栏的对话框?
  • 鼠标拖动的问题
  • 用鼠标拖动控件
  • 菜鸟问题:如何跟随鼠标拉出一虚线矩形框?
  • 用鼠标按住dialog的caption然后拖动鼠标,系统会显示该dialog将会在新的位置的虚线框架,mouseup后dialog就移动到该虚线框架的位置,有没有办法不显示该虚线框架?因为我用了个多边形的dialog,虚线框架却还是原来的矩形。
  • 怎么删掉拖动窗口时的虚线矩形框呢?有人知道吗?
  • 无边框对话框如何在鼠标拖动边缘时改变大小?

关键词

得分解答快速导航

  • 帖主:hungboy0
  • victor26
  • clare2003

相关链接

  • Web开发类图书

广告也精彩

反馈

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