萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> javascript實現淡藍色的鼠標拖動選擇框實例

javascript實現淡藍色的鼠標拖動選擇框實例

   這篇文章主要介紹了javascript實現淡藍色的鼠標拖動選擇框,可實現鼠標拖動出現淡藍色選擇框的效果,涉及javascript鼠標事件及樣式的操作技巧,需要的朋友可以參考下

  ?

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

  希望本文所述對大家的javascript程序設計有所幫助。

copyright © 萬盛學電腦網 all rights reserved