首页 > 语言 > JavaScript > 正文

javascript实现淡蓝色的鼠标拖动选择框实例

2024-05-06 16:19:44
字体:
来源:转载
供稿:网友

这篇文章主要介绍了javascript实现淡蓝色的鼠标拖动选择框,可实现鼠标拖动出现淡蓝色选择框的效果,涉及javascript鼠标事件及样式的操作技巧,需要的朋友可以参考下

本文实例讲述了javascript实现淡蓝色的鼠标拖动选择框。分享给大家供大家参考。具体实现方法如下:

 

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  3. <html xmlns="http://www.w3.org/1999/xhtml"
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5. <style type="text/css"
  6. #rectBox 
  7. background:#CCFFFF; 
  8. border:2px solid #0099FF; 
  9. filter:alpha(opacity=30); 
  10. opacity:0.3; 
  11. position:absolute; 
  12. </style> 
  13. <head> 
  14. <title>一个鼠标选择框</title> 
  15. <script type="text/javascript"
  16. function Rect() 
  17. this.doc = document.documentElement; 
  18. if(!this.doc) return
  19. this.startX = ''
  20. this.startY = ''
  21. this.rect = null
  22. rectSelf = this
  23. Rect.prototype.down = function(e) 
  24. var e = e?e:window.event; 
  25. rectSelf.startX = e.clientX?e.clientX + document.body.scrollLeft:e.pageX; 
  26. rectSelf.startY = e.clientY?e.clientY + document.body.scrollTop:e.pageY; 
  27. rectSelf.showRect(true); 
  28. Rect.prototype.up = function(e) 
  29. rectSelf.rectBox.style.width = '0px'
  30. rectSelf.rectBox.style.height = '0px'
  31. rectSelf.showRect(false); 
  32. Rect.prototype.move = function(e) 
  33. if(rectSelf.rectBox) 
  34. var currentX = e.clientX?e.clientX + rectSelf.doc.scrollLeft:e.pageX; 
  35. var currentY = e.clientY?e.clientY + rectSelf.doc.scrollTop:e.pageY; 
  36. rectSelf.rectBox.style.width = Math.abs(currentX - rectSelf.startX) + 'px'
  37. rectSelf.rectBox.style.height = Math.abs(currentY - rectSelf.startY) + 'px'
  38. if(currentX - rectSelf.startX < 0) 
  39. rectSelf.rectBox.style.left = currentX + 'px'
  40. if(currentY - rectSelf.startY < 0) 
  41. rectSelf.rectBox.style.top = currentY + 'px'
  42. //document.title = "left:"+currentX + 'px '+"top:"+currentY + 'px '; 
  43. Rect.prototype.showRect = function(bool) 
  44. if(bool) 
  45. if(!this.rectBox) 
  46. this.rectBox = document.createElement("div"); 
  47. this.rectBox.id = "rectBox"
  48. document.body.appendChild(this.rectBox); 
  49. this.rectBox.style.display = "block"
  50. this.rectBox.style.left = this.startX + 'px'
  51. this.rectBox.style.top = this.startY + 'px';  
  52. this.addEventListener(this.doc , 'mousemove' , this.move); 
  53. else 
  54. if(this.rectBox) 
  55. this.rectBox.style.display = "none"
  56. this.removeEventListener(this.doc , 'mousemove' , this.move); 
  57. Rect.prototype.addEventListener = function(o,e,l)  
  58. if (o.addEventListener) { 
  59. o.addEventListener(e,l,false); 
  60. else if (o.attachEvent) { 
  61. o.attachEvent('on'+e,function() { 
  62. l(window.event); 
  63. }); 
  64. Rect.prototype.removeEventListener = function(o,e,l)  
  65. if (o.removeEventListener) { 
  66. o.removeEventListener(e,l,false); 
  67. else if (o.detachEvent) { 
  68. o.detachEvent('on'+e,function() { 
  69. l(window.event); 
  70. }); 
  71. window.onload = function() 
  72. var oRect = new Rect(); 
  73. oRect.addEventListener(oRect.doc , 'mousedown' , oRect.down); 
  74. oRect.addEventListener(oRect.doc , 'mouseup' , oRect.up); 
  75. </script> 
  76. </head> 
  77. <body> 
  78. <h1>拖动你的鼠标就会出现选择框</h1> 
  79. </body> 
  80. </html> 

希望本文所述对大家的javascript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选