javaScript實(shí)現(xiàn)可縮放的顯示區(qū)效果代碼
本文實(shí)例講述了javaScript實(shí)現(xiàn)可縮放的顯示區(qū)效果代碼。分享給大家供大家參考,具體如下:
這里演示可縮放的顯示區(qū),采用JS代碼實(shí)現(xiàn),鼠標(biāo)按住區(qū)域的右下角,出現(xiàn)拖放箭頭時(shí),向下或向上拉,就可實(shí)現(xiàn)縮放操作,當(dāng)區(qū)域較小時(shí)顯示滾動(dòng)條,平時(shí)也比較常見的效果,在此將JavaScript代碼與大家分享。
運(yùn)行效果截圖如下:
在線演示地址如下:
http://demo.jb51.net/js/2015/js-ksf-box-style-demo/
具體代碼如下:
<HTML> <HEAD> <TITLE>可縮放的顯示區(qū)</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: "華文彩云", "華文仿宋", "華文細(xì)黑", "華文新魏", "華文行楷", "華文中宋", "新宋體", "幼圓"} .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>可縮放的顯示區(qū)</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>請?jiān)谶吙蛱幫蟿?dòng)鼠標(biāo)</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程序設(shè)計(jì)有所幫助。
- JavaScript實(shí)現(xiàn)選擇框按比例拖拉縮放的方法
- javascript實(shí)現(xiàn)表格排序 編輯 拖拽 縮放
- JavaScript等比例縮放圖片控制超出范圍的圖片
- javascript檢測頁面是否縮放的小例子
- JavaScript實(shí)現(xiàn)網(wǎng)頁圖片等比例縮放實(shí)現(xiàn)代碼及調(diào)用方式
- 利用javascript解決圖片縮放及其優(yōu)化的代碼
- javascript 指定區(qū)域內(nèi)圖片等比例縮放實(shí)現(xiàn)代碼 腳本之家整合版
- JavaScript 拖拉縮放效果
- javascript圖片自動(dòng)縮放和垂直居中處理函數(shù)
- JavaScript 圖片放大鏡(可拖放、縮放效果)
相關(guān)文章
在頁面中js獲取光標(biāo)/鼠標(biāo)的坐標(biāo)及光標(biāo)的像素坐標(biāo)
頁面JS光標(biāo)/鼠標(biāo)坐標(biāo),百度統(tǒng)計(jì)中有個(gè)熱點(diǎn)統(tǒng)計(jì)圖,我們要做的就是獲取光標(biāo)的像素坐標(biāo)2013-11-11javascript與webservice的通信實(shí)現(xiàn)代碼
關(guān)于javascript與webservice的通信,從理論上來說實(shí)現(xiàn)應(yīng)該不難,主要是將服務(wù)器端的xml數(shù)據(jù)進(jìn)行一個(gè)簡單的處理然后以一種適當(dāng)?shù)男问秸宫F(xiàn)成來。2010-12-12javascript+css 網(wǎng)頁每次加載不同樣式的實(shí)現(xiàn)方法
用戶每次訪問時(shí)隨機(jī)載入樣式,讓微博在視覺上保持新鮮感。雖然思路與實(shí)現(xiàn)都比較簡單,但還是想記錄下來,與大家分享。2009-12-12json數(shù)據(jù)與字符串的相互轉(zhuǎn)化示例
json與字符串之間的轉(zhuǎn)換,在使用中經(jīng)常會(huì)遇到,本文有個(gè)不錯(cuò)的示例,大家可以參考下,或許會(huì)有所幫助2013-09-09使用ImageMagick進(jìn)行圖片縮放、合成與裁剪(js+python)
由于需要在服務(wù)器端處理,使用就研究使用imagemagick來進(jìn)行。同時(shí)準(zhǔn)備封裝了一個(gè)Node.js和Python的方法,主要還是講一下然后使用imagemagick來對圖片進(jìn)行縮放、合成后進(jìn)行裁剪吧2013-09-09枚舉的實(shí)現(xiàn)求得1-1000所有出現(xiàn)1的數(shù)字并計(jì)算出現(xiàn)1的個(gè)數(shù)
求得1-1000所有出現(xiàn)1的數(shù)字,并計(jì)算出現(xiàn)1的個(gè)數(shù),以下是采用枚舉的實(shí)現(xiàn)方法,但是若從1-N就不管用了,因?yàn)镹不一定會(huì)是多少2013-09-09underscore之Chaining_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
本文通過文字說明與代碼的形式給大家介紹了underscore之Chaining的相關(guān)知識,感興趣的朋友一起學(xué)習(xí)吧2017-07-07