亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript實現模仿桌面窗口的方法

2019-11-20 12:01:40
字體:
來源:轉載
供稿:網友

本文實例講述了JavaScript實現模仿桌面窗口的方法。分享給大家供大家參考。具體如下:

這里使用JS模仿了桌面窗口的移動、八個方向的縮放、最小化、最大化和關閉,以及 雙擊縮小放大窗口、改變窗口大小的預覽效果等功能。

<!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"><head><title>JS山寨桌面窗口</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><style type="text/css" media="screen">html, body, div { margin: 0; padding: 0;} html, body { background: #FFFFFF; width: 100%; height: 100%; overflow: hidden;}#box { position: absolute; top: 30%; left: 40%; width: 250px; height: 150px; background: #EEE; border: 1px solid #666; border-radius: 8px; box-shadow: 2px 2px 5px #777;}/*標題欄*/#boxHeader { width: 100%; height: 30px; background: none!important; background: #EEE; border-bottom: 2px solid #AAA; border-radius: 5px 5px 0 0;}#button { float: right; width: 79px; height: 15px; margin: 5px 5px 0 0!important; margin: 5px 2px 0 0; background: #CCC; border-radius: 5px;}#button div { float: left; width: 25px; height: 15px; border-right: 2px #AAA solid;}#button .close { border: none; border-radius: 0px 5px 5px 0;}#button .minimize { border-radius: 5px 0 0 5px;}/*八個方向*//*用于顯示變欄顏色,作為測試#boxN, #boxE, #boxS, #boxW { background: red;}#boxNE, #boxES, #boxSW, #boxWN { background: green;}*/#boxN{ position: absolute; top: 0; left: 0; width: 100%; height: 5px; overflow: hidden;}#boxE{ position: absolute; top: 0; right: 0; width: 5px; height: 100%; overflow: hidden;}#boxS{ position: absolute; bottom: 0; left: 0; width: 100%; height: 5px; overflow: hidden;}#boxW{ position: absolute; top: 0; left: 0; width: 5px; height: 100%; overflow: hidden;}#boxNE { position: absolute; right: 0; top: 0; width: 5px; height: 5px; overflow: hidden;}#boxES { position: absolute; right: 0; bottom: 0; width: 5px; height: 5px; overflow: hidden;}#boxSW { position: absolute; left: 0; bottom: 0; width: 5px; height: 5px; overflow: hidden;}#boxWN { position: absolute; left: 0; top: 0; width: 5px; height: 5px; overflow: hidden;}/*顯示按鈕*/#showButton { display: none; position: absolute; top: 50%; left: 50%; margin: -75px 0 0 -75px;  width: 150px; height: 150px;}#showButton span { font: 50px bolder;}/*改變大小時的預覽DIV*/#virtualBox { position: absolute; background: #8EC6FF; border: 1px solid #147AFF; border-radius: 8px; opacity: 0.4; filter: alpha(opacity = 40);}</style><script type="text/javascript">//拖扯box函數var dragDiv = function() { var box = document.getElementById("box"); var boxHeader = document.getElementById("boxHeader"); var bDraging = false; var disX = disY = 0; //記錄鼠標按下時距離box左、上邊框距離 boxHeader.onmousedown = function(event) {  bDraging = true;  document.body.style.cursor = "move";  var event = event || window.event;  disX = event.clientX - box.offsetLeft;  disY = event.clientY - box.offsetTop;  //拖動box  document.onmousemove = function(event) {   if(!bDraging) return false;   document.body.style.cursor = "move";   var event = event || window.event;   var boxX = event.clientX - disX;   var boxY = event.clientY - disY;   var maxX = document.body.scrollWidth - box.offsetWidth;   var maxY = document.body.offsetHeight - box.offsetHeight;   boxX = (boxX < 0) ? 0 : boxX;   boxY = (boxY < 0) ? 0 : boxY;   boxX = (boxX > maxX) ? maxX : boxX;   boxY = (boxY > maxY) ? maxY : boxY;   box.style.left = boxX + "px";   box.style.top = boxY + "px";  };  document.onmouseup = function() {   bDraging = false;   document.body.style.cursor = "";  };  return false; };};var changeSize = function() { var box = document.getElementById("box"); var virtualBox = document.getElementById("virtualBox"); var boxSide = document.getElementById("boxSide").getElementsByTagName("div"); var bSizeChanging = bMousedowning = false; //box是否正在改變 & 鼠標是否正在按下 var originalWidth = box.offsetWidth; //box最原始寬度 var originalHeight = box.offsetHeight; //box最原始高度 for(var i = 0; i < boxSide.length; i++) { //遍歷boxside,監聽鼠標  boxSide[i].index = i;  boxSide[i].onmouseover = function() {   if(bMousedowning) return false;   changeCursor(true, this.index);  };  boxSide[i].onmouseout = function() {   if(bMousedowning) return false;   changeCursor(false, this.index);  };  boxSide[i].onmousedown = function(event) {   var event = event || window.event;      var index = this.index;   var aBoxPrevious = new Array();   //記錄box上一次的狀態   aBoxPrevious["clientX"] = event.clientX;   aBoxPrevious["clientY"] = event.clientY;   aBoxPrevious["left"] = box.offsetLeft;   aBoxPrevious["top"]= box.offsetTop;   aBoxPrevious["width"] = box.offsetWidth;   aBoxPrevious["height"] = box.offsetHeight;   bMousedowning = true;   bSizeChanging = true;   showVirtualBox(virtualBox, aBoxPrevious);   document.onmousemove = function(event) {    if(!bSizeChanging) return false;    changeVirtualBoxSize(event, aBoxPrevious, index);   };   document.onmouseup = function() {    changeBoxSize(virtualBox)    hideVirtualBox(virtualBox);    bSizeChanging = false;    bMousedowning = false;    changeCursor(false, index);   };   return false;  }; } //改變鼠標指針樣式 var changeCursor = function(bIsShowing, index) {  if(bIsShowing) {   var cursorStyle = ["n-resize","e-resize","s-resize","w-resize","ne-resize","se-resize","sw-resize","nw-resize"];   document.body.style.cursor = cursorStyle[index];  }  else {   document.body.style.cursor = "";  } }; //顯示預覽DIV var showVirtualBox = function(virtualBox, aBoxPrevious) {  with(virtualBox.style) {   display = "block";   top = aBoxPrevious["top"] + "px";   left = aBoxPrevious["left"] + "px";   width = aBoxPrevious["width"] + "px";   height = aBoxPrevious["height"] + "px";  } } //隱藏預覽DIV var hideVirtualBox = function(virtualBox) {  virtualBox.style.display = "none"; } //改變box大小 var changeVirtualBoxSize = function(event, aBoxPrevious, index) {  var event = event || window.event;  var bTop = bRight = bBottom = bLeft = false;  //八個方向,分別為N、E、S、W、NE、SW、SW、NW  switch (index) {   case 0:    bTop = true;    break;   case 1:    bRight = true;    break;   case 2:    bBottom = true;    break;   case 3:    bLeft = true;    break;   case 4:    bTop = bRight = true;;    break;   case 5:    bRight = bBottom = true;    break;   case 6:    bBottom = bLeft = true;    break;   case 7:    bLeft = bTop = true;    break;   default:    break;  }  //向北改變高度  if(bTop) {   var newTopHeight = aBoxPrevious["height"] - (event.clientY - aBoxPrevious["clientY"]);   (newTopHeight < originalHeight) && (newTopHeight = originalHeight);   (newTopHeight > aBoxPrevious["top"] + aBoxPrevious["height"]) && (newTopHeight = aBoxPrevious["top"] + aBoxPrevious["height"]);   var newTop = aBoxPrevious["top"] + (event.clientY - aBoxPrevious["clientY"]);   (newTop > aBoxPrevious["top"] + aBoxPrevious["height"] - originalHeight) && (newTop = aBoxPrevious["top"] + aBoxPrevious["height"] - originalHeight);   (newTop < 0) && (newTop = 0);   virtualBox.style.top = newTop + "px";   virtualBox.style.height = newTopHeight - box.clientTop * 2 + "px";    //不能忽略border-width   bTop = false;  }  //向東改變寬度  if(bRight) {   var newRightWidth = aBoxPrevious["width"] + (event.clientX - aBoxPrevious["clientX"]);   (newRightWidth < originalWidth) && (newRightWidth = originalWidth);   (newRightWidth > document.body.scrollWidth - aBoxPrevious["left"]) && (newRightWidth = document.body.scrollWidth - aBoxPrevious["left"]);   virtualBox.style.width = newRightWidth - box.clientTop * 2 + "px";   bRight = false;  }  //向南改變高度  if(bBottom) {   var newBottomHeight = aBoxPrevious["height"] + (event.clientY - aBoxPrevious["clientY"]);   (newBottomHeight < originalHeight) && (newBottomHeight = originalHeight);   (newBottomHeight > document.body.scrollHeight - aBoxPrevious["top"]) && (newBottomHeight = document.body.scrollHeight - aBoxPrevious["top"]);   virtualBox.style.height = newBottomHeight - box.clientTop * 2 + "px";   bBottom = false;  }  //向西改變寬度  if(bLeft) {   var newLeftWidth = aBoxPrevious["width"] - (event.clientX - aBoxPrevious["clientX"]);   (newLeftWidth < originalWidth) && (newLeftWidth = originalWidth);   (newLeftWidth > aBoxPrevious["left"] + aBoxPrevious["width"]) && (newLeftWidth = aBoxPrevious["left"] + aBoxPrevious["width"]);   var newLeft = aBoxPrevious["left"] + (event.clientX - aBoxPrevious["clientX"]);   (newLeft > aBoxPrevious["left"] + aBoxPrevious["width"] - originalWidth) && (newLeft = aBoxPrevious["left"] + aBoxPrevious["width"] - originalWidth);   (newLeft < 0) && (newLeft = 0);   virtualBox.style.left = newLeft + "px";   virtualBox.style.width = newLeftWidth - box.clientLeft * 2 + "px";   bLeft = false;  } }; var changeBoxSize = function(virtualBox) {  with(box.style) {   left = virtualBox.style.left;   top = virtualBox.style.top;   width = virtualBox.style.width;   height = virtualBox.style.height;  } }};//窗口按鈕函數boxButton = function() { var box = document.getElementById("box"); var boxHeader = document.getElementById("boxHeader"); var aButton = document.getElementById("button").getElementsByTagName("div"); var showButton = document.getElementById("showButton"); var span = showButton.getElementsByTagName("span")[0]; var bIsMin = bIsMax = false; //目前狀態是否最小 or 最大 boxHeader.ondblclick = function() {  maximize(); } for(var i = 0; i < aButton.length; i++) {  aButton[i].index = i;  aButton[i].onmouseover = function() {   aButton[this.index].style.background = "#AAA";   document.body.style.cursor = "pointer";  };  aButton[i].onmouseout = function() {   aButton[this.index].style.background = "";   document.body.style.cursor = ""  };  aButton[i].onclick = function() {   switch(this.index) {    case 0:     minimize();     break;    case 1:     maximize();     break;    case 2:     close();     break;    default:     break;   }  }; } var minimize = function() {  if(bIsMin) {   resumeBox();   bIsMin = false;  }  else {   box.style.width = "89px";   box.style.height = "32px";   box.style.left = "2%";   box.style.top = document.body.offsetHeight - box.offsetHeight - 15 + "px";   bIsMin = true;   bIsMax = false;  } }; var maximize = function() {  if(bIsMax) {   resumeBox();   bIsMax = false;  }  else {   box.style.width = document.body.scrollWidth - 10 + "px";   box.style.height = document.body.scrollHeight - 10 + "px";   box.style.left = "5px";   box.style.top = "5px";   bIsMax = true;   bIsMin = false;  } }; var close = function() {  box.style.display = "none";  showButton.style.display = "block"; }; var resumeBox = function() {  box.style.top = "30%";  box.style.left = "40%";  box.style.width = "250px";  box.style.height = "150px"; }; showButton.onmousedown = function() {  span.innerHTML = "^o^"; }; showButton.onclick = function() {  this.style.display = "none";  span.innerHTML = ">_<";  resumeBox();  box.style.display = "block"; };};window.onload = function() { changeSize(); dragDiv(); boxButton();};</script></head><body><div id="box"> <div id="boxHeader">  <div id="button">   <div class="minimize"></div>   <div class="maximize"></div>   <div class="close"></div>  </div> </div> <div id="boxSide">  <div id="boxN"></div>  <div id="boxE"></div>  <div id="boxS"></div>  <div id="boxW"></div>  <div id="boxNE"></div>  <div id="boxES"></div>  <div id="boxSW"></div>  <div id="boxWN"></div> </div></div><button id="showButton"><span>>_<</span><p>居然關掉人家,討厭~</p><p>快打開</p></button><div id="virtualBox"></div></body></html>

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
狠狠爱在线视频一区| 欧美成人精品在线观看| 欧美性猛交xxxx富婆弯腰| 欧美精品中文字幕一区| 法国裸体一区二区| 国产成人自拍视频在线观看| 欧美午夜宅男影院在线观看| 国产精品影片在线观看| 国产精品久久久久久久久久三级| 日韩人在线观看| 国产午夜精品一区理论片飘花| 日韩精品久久久久久久玫瑰园| 久久亚洲精品网站| 性色av一区二区三区红粉影视| 91精品国产色综合久久不卡98口| 国产精品高潮呻吟久久av无限| 亚洲精品成a人在线观看| 亚洲国产日韩欧美综合久久| 久久久影视精品| 欧美大学生性色视频| 亚洲石原莉奈一区二区在线观看| 92福利视频午夜1000合集在线观看| 日韩av在线最新| 日韩一区二区久久久| 国产精品十八以下禁看| 最近中文字幕mv在线一区二区三区四区| 国产精品视频一区二区三区四| 日韩免费观看av| 国产欧美日韩中文| 日韩av中文字幕在线播放| 奇米一区二区三区四区久久| 日韩在线视频中文字幕| 欧美大尺度在线观看| 7777kkkk成人观看| 亚洲精品成人久久| 亚洲国产精品99| 国产精品v日韩精品| 久久久99久久精品女同性| 高清日韩电视剧大全免费播放在线观看| 91精品一区二区| 日韩av电影在线免费播放| 亚洲精品国产品国语在线| 欧美体内谢she精2性欧美| 一区二区中文字幕| 国产精品美女免费| 一区二区三区国产在线观看| 久久久视频免费观看| 国产欧美日韩丝袜精品一区| 欧美日本中文字幕| 亚洲91av视频| 中文字幕亚洲激情| 国产一区二区免费| 俺也去精品视频在线观看| 97精品欧美一区二区三区| 亚洲国产精品va在看黑人| 亚洲欧美激情另类校园| 51久久精品夜色国产麻豆| 欧美一级片在线播放| 最近2019免费中文字幕视频三| 久久这里有精品| 97在线视频精品| 川上优av一区二区线观看| 亚洲第一免费播放区| 色悠久久久久综合先锋影音下载| 国产精品久久久久久久久| 国产精品亚洲аv天堂网| 久久久久久久久久久免费| 九九热99久久久国产盗摄| 中文字幕成人在线| 亚洲精品电影久久久| 黄色成人在线免费| 中文字幕免费精品一区高清| 久久精品成人欧美大片| 欧美激情一二区| 91精品国产高清久久久久久| 欧美理论电影在线观看| 国产亚洲欧洲黄色| 欧美在线亚洲在线| 亚洲精品ady| 九色精品免费永久在线| 欧美日韩一区二区三区在线免费观看| 欧美日韩免费观看中文| 亚洲第一区在线| 国产精品欧美亚洲777777| 欧美激情视频播放| 97高清免费视频| 国产精品精品国产| 日本高清视频精品| 国产日韩视频在线观看| 亚洲国产精品久久91精品| 中文字幕精品在线| 国产国语刺激对白av不卡| 日韩毛片中文字幕| 亚洲少妇激情视频| 在线观看欧美www| 欧美日韩一区二区在线播放| 亚洲精品免费网站| 国产久一一精品| 亚洲人成网站色ww在线| 国产成人精品久久二区二区| 日本亚洲精品在线观看| 国产一区二区三区在线观看视频| 91中文精品字幕在线视频| 国产99久久精品一区二区| 91网站在线看| 欧美精品在线视频观看| 在线日韩av观看| 亚洲高清久久久久久| 欧洲精品毛片网站| 久久精品国产一区| 国模极品一区二区三区| 97热在线精品视频在线观看| 久久久精品久久| 日本精品久久久久影院| 日韩电影在线观看免费| 韩国三级日本三级少妇99| 日韩亚洲精品视频| 国产精品一区二区三区久久久| 日韩精品视频免费在线观看| 日韩欧美在线字幕| 欧美激情亚洲自拍| 一本一本久久a久久精品综合小说| 久久久精品国产亚洲| 国产精品午夜视频| 亚洲自拍在线观看| 日韩免费在线播放| 欧美国产日韩xxxxx| 欧美日韩国产成人在线观看| 欧美日韩国产一区二区三区| 国产69精品久久久久9999| 亚洲区免费影片| 一区二区福利视频| 动漫精品一区二区| 亚洲国产成人av在线| 国产精品亚发布| 国产一区二区在线播放| 欧美精品福利视频| 欧美电影第一页| 国产97人人超碰caoprom| 亚洲成人av片在线观看| 国模精品系列视频| www.欧美三级电影.com| 亚洲人成网7777777国产| 国产福利精品视频| 欧美另类暴力丝袜| 欧美巨乳美女视频| 日本亚洲欧美成人| 中文字幕精品久久久久| 久久久人成影片一区二区三区| 国产一区二区视频在线观看| 欧美激情欧美狂野欧美精品| 国产精品一区二区三区毛片淫片| 国产噜噜噜噜久久久久久久久| 欧洲午夜精品久久久| 亚洲自拍偷拍一区| 精品久久久久久亚洲国产300| 国产成人精品免高潮在线观看| 亚洲一区中文字幕在线观看| 亚洲人成在线免费观看| 国产精品一区久久久| 国产精品女视频| 91理论片午午论夜理片久久| 国产精品麻豆va在线播放| 国产午夜精品视频免费不卡69堂|