JavaScript implements the code that can scale the display area, and javascript Scaling

Source: Internet
Author: User

JavaScript implements the code that can scale the display area, and javascript Scaling

The example in this article describes the javaScript code for implementing a scalable display area. We will share this with you for your reference. The details are as follows:

This example shows a scalable display area, which is implemented using JS code. You can zoom down or up when the drag-and-drop arrow appears in the lower right corner of the area, when the area is relatively small, the scroll bar is displayed, which is also common. Here we will share JavaScript code with you.

The running effect is as follows:

The Online Demo address is as follows:

Http://demo.jb51.net/js/2015/js-ksf-box-style-demo/

The Code is as follows:

<HTML> <HEAD> <TITLE> scalable display area </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> scalable display area </FONT> </span> </CENTER> <BR> <CENTER> <TABLE borderColor = #00FF00 border = 5 borderlight = "green"> <TBODY> <TR> <TD align = left> <STYLE> UNKNOWN {bo X-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: # Fill A5; 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: # Fill A5; 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> on the border drag the cursor </P> </DIV> <SCRIPT language = javascript> var theobject = null; // This gets a value as soon as a resize startfunction resizeObject () {this. el = null; // poi Nter 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; theob Ject. 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>

I hope this article will help you design JavaScript programs.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.