javaScript实现可缩放的显示区效果代码
内容摘要
本文实例讲述了javaScript实现可缩放的显示区效果代码。分享给大家供大家参考,具体如下:
这里演示可缩放的显示区,采用JS代码实现,鼠标按住区域的右下角,出现拖放箭头时,向下或向
这里演示可缩放的显示区,采用JS代码实现,鼠标按住区域的右下角,出现拖放箭头时,向下或向
文章正文
本文实例讲述了javaScript实现可缩放的显示区效果代码。分享给大家供大家参考,具体如下:
这里演示可缩放的显示区,采用JS代码实现,鼠标按住区域的右下角,出现拖放箭头时,向下或向上拉,就可实现缩放操作,当区域较小时显示滚动条,平时也比较常见的效果,在此将JavaScript代码与大家分享。
运行效果截图如下:
在线演示地址如下:
http://demo.phpstudy.net/js/2015/js-ksf-box-style-demo/
具体代码如下:
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 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | <HTML> <HEAD> <TITLE>可缩放的显示区</TITLE> <STYLE type=text/css> BODY { MARGIN-TOP: 0px; FONT-SIZE: 9pt; MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px; FONT-FAMILY: "宋体" } A { FONT-WEIGHT: 400; FONT-SIZE: 9pt; COLOR: black; TEXT-DECORATION: none } A:hover { FONT-WEIGHT: 400; FONT-SIZE: 9pt; COLOR: red; TEXT-DECORATION: underline } A:active { FONT: 9pt "宋体" ; CURSOR: hand; COLOR: #ff0033 } .STYLE1 {font-family: "华文彩云" , "华文仿宋" , "华文细黑" , "华文新魏" , "华文行楷" , "华文中宋" , "新宋体" , "幼圆" } .STYLE2 { font-family: "方正姚体" ; font-weight: bold; } </STYLE> <META http-equiv=Content-Type content= "text/html; charset=gb2312" > </HEAD> <BODY bgColor=#fef4d9> <CENTER> <span class = "STYLE1" ><FONT color=black size=16>可缩放的显示区</FONT></span> </CENTER><BR> <CENTER> <TABLE borderColor=#00FF00 border=5 borderlight= "green" > <TBODY> <TR> <TD align=left> <STYLE>UNKNOWN { box-sizing: border-box; moz-box-sizing: border-box } #testDiv { BORDER-RIGHT: white 2px outset; PADDING-RIGHT: 2px; BACKGROUND-POSITION: 0% 50%; BORDER-TOP: white 2px outset; PADDING-LEFT: 2px; Z-INDEX: 2; BACKGROUND-ATTACHMENT: scroll; LEFT: 30px; PADDING-BOTTOM: 2px; MARGIN: 0px; OVERFLOW: hidden; BORDER-LEFT: white 2px outset; WIDTH: 500px; COLOR: #3969a5; PADDING-TOP: 2px; BORDER-BOTTOM: white 2px outset; BACKGROUND-REPEAT: repeat; HEIGHT: 300px; BACKGROUND-COLOR: buttonface } BODY { FONT-SIZE: 9pt; FONT-FAMILY: Verdana } #innerNice { BORDER-RIGHT: white 2px inset; PADDING-RIGHT: 8px; BACKGROUND-POSITION: 0% 50%; BORDER-TOP: white 2px inset; PADDING-LEFT: 8px; BACKGROUND-ATTACHMENT: scroll; PADDING-BOTTOM: 8px; OVERFLOW: auto; BORDER-LEFT: white 2px inset; WIDTH: 100%; COLOR: #3969a5; PADDING-TOP: 8px; BORDER-BOTTOM: white 2px inset; BACKGROUND-REPEAT: repeat; HEIGHT: 100%; BACKGROUND-COLOR: white } </STYLE> <DIV class =resizeMe id=testDiv> <DIV id=innerNice> <P align=center> </P> <P align=center>请在边框处拖动鼠标</P> <P> </P> <P> </P> <P> </P></DIV></DIV> <SCRIPT language=javascript> var theobject = null; //This gets a value as soon as a resize start function resizeObject() { this.el = null; //pointer to the object this.dir = "" ; //type of current resize (n, s, e, w, ne, nw, se, sw) this.grabx = null; //Some useful values this.graby = null; this.width = null; this.height = null; this.left = null; this.top = null; } function getDirection(el) { var xPos, yPos, offset, dir; dir = "" ; xPos = window.event.offsetX; yPos = window.event.offsetY; offset = 8; //The distance from the edge in pixels if (yPos<offset) dir += "n" ; else if (yPos > el.offsetHeight-offset) dir += "s" ; if (xPos<offset) dir += "w" ; else if (xPos > el.offsetWidth-offset) dir += "e" ; return dir; } function doDown() { var el = getReal(event.srcElement, "className" , "resizeMe" ); if (el == null) { theobject = null; return ; } dir = getDirection(el); if (dir == "" ) return ; theobject = new resizeObject(); theobject.el = el; theobject.dir = dir; theobject.grabx = window.event.clientX; theobject.graby = window.event.clientY; theobject.width = el.offsetWidth; theobject.height = el.offsetHeight; theobject.left = el.offsetLeft; theobject.top = el.offsetTop; window.event.returnValue = false; window.event.cancelBubble = true; } function doUp() { if (theobject != null) { theobject = null; } } function doMove() { var el, xPos, yPos, str, xMin, yMin; xMin = 8; //The smallest width possible yMin = 8; // height el = getReal(event.srcElement, "className" , "resizeMe" ); if (el.className == "resizeMe" ) { str = getDirection(el); //Fix the cursor if (str == "" ) str = "default" ; else str += "-resize" ; el.style.cursor = str; } //Dragging starts here if (theobject != null) { if (dir.indexOf( "e" ) != -1) theobject.el.style.width = Math.max(xMin, theobject.width + window.event.clientX - theobject.grabx) + "px" ; if (dir.indexOf( "s" ) != -1) theobject.el.style.height = Math.max(yMin, theobject.height + window.event.clientY - theobject.graby) + "px" ; if (dir.indexOf( "w" ) != -1) { theobject.el.style.left = Math.min(theobject.left + window.event.clientX - theobject.grabx, theobject.left + theobject.width - xMin) + "px" ; theobject.el.style.width = Math.max(xMin, theobject.width - window.event.clientX + theobject.grabx) + "px" ; } if (dir.indexOf( "n" ) != -1) { theobject.el.style.top = Math.min(theobject.top + window.event.clientY - theobject.graby, theobject.top + theobject.height - yMin) + "px" ; theobject.el.style.height = Math.max(yMin, theobject.height - window.event.clientY + theobject.graby) + "px" ; } window.event.returnValue = false; window.event.cancelBubble = true; } } function getReal(el, type, value) { temp = el; while ((temp != null) && (temp.tagName != "BODY" )) { if ( eval ( "temp." + type) == value) { el = temp; return el; } temp = temp.parentElement; } return el; } document.onmousedown = doDown; document.onmouseup = doUp; document.onmousemove = doMove; </SCRIPT> </TD></TR></TBODY></TABLE> </CENTER> </BODY> </HTML> |
希望本文所述对大家JavaScript程序设计有所帮助。
代码注释