xp window 界面及有关功能使用前端技术实现不可思议吧不够该程序在 IE 调试的,其他浏览器可能有 BUG,感兴趣的朋友可以参考下哈,希望可以帮助到你
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
注意: 该程序在 IE 调试的,其他浏览器可能有 BUG,见谅!
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=GB2312">
- <title>
- Insert title here
- </title>
- <!-- -- CSS -- set window style -->
- <link rel="stylesheet" type="text/css" href="main.css" />
- <!-- -- JavaScript -- set function -->
- <script language="JavaScript" src="mywindow.js">
- </script>
- <script>
- alert("XP Window以IE测试,其他浏览器可能有BUG请见谅! 基本功能+四边四角顶部拖拉都已实现!") alert("进行操作前,记得先初始化窗口哦!");
- /*
- * create xp window and initialize
- */
- var myW = new MyWindow();
- function initialize() {
- myW.setBackgroundDiv("mywindow");
- myW.setLeftDiv("mywindow_left");
- myW.setRightDiv("mywindow_right");
- myW.setBottomDiv("mywindow_bottom");
- myW.setTopDiv("mywindow_top");
- myW.initialEvent();
- }
- /*
- * list button event function
- */
- function hiddenWindow() {
- myW.hidden();
- }
- function showWindow() {
- myW.show();
- }
- function setAdjust(adj) {
- myW.setAdjust(adj);
- }
- function showMaxSize() {
- myW.showMaxSize();
- }
- function getTop() {
- myW.getTop();
- }
- function getLeft() {
- myW.getLeft();
- }
- function getWidth() {
- myW.getWidth();
- }
- function getHeight() {
- myW.getHeight();
- }
- function removeWindow() {
- myW.removeWindow();
- }
- function addObject() {
- myW.addObject();
- }
- function deleteObject() {
- myW.deleteObject();
- }
- /*
- * drag operation event function
- */
- function start(idName) {
- myW.start(idName);
- }
- function move(idName) {
- myW.move(idName);
- }
- function end(idName) {
- myW.end(idName);
- }
- </script>
- </head>
- <body>
- <!-- -- set list button -->
- <ul>
- <li>
- <a href="#" onclick="initialize();">
- 初始化窗口
- </a>
- </li>
- <li>
- <a href="#" onclick="hiddenWindow();">
- 隐藏窗口
- </a>
- </li>
- <li>
- <a href="#" onclick="showWindow();">
- 显示窗口
- </a>
- </li>
- <li>
- <a href="#" onclick="setAdjust(true);">
- 设置窗口可调整大小
- </a>
- </li>
- <li>
- <a href="#" onclick="setAdjust(false);">
- 设置窗口不可调整大小
- </a>
- </li>
- <li>
- <a href="#" onclick="showMaxSize();">
- 最大化窗口
- </a>
- </li>
- <li>
- <a href="#" onclick="addObject();">
- 在窗口中添加对象
- </a>
- </li>
- <li>
- <a href="#" onclick="deleteObject();">
- 删除对象
- </a>
- </li>
- <li>
- <a href="#" onclick="getTop();">
- 得到Top的值
- </a>
- </li>
- <li>
- <a href="#" onclick="getLeft();">
- 得到Left的值
- </a>
- </li>
- <li>
- <a href="#" onclick="getWidth();">
- 得到Width的值
- </a>
- </li>
- <li>
- <a href="#" onclick="getHeight();">
- 得到Height的值
- </a>
- </li>
- <li>
- <a href="#" onclick="removeWindow();">
- 释放窗口资源
- </a>
- </li>
- </ul>
- <br>
- <!-- -- set every div of window -- because cover proble, so order of set
- div is bottom, right/left, central, last top -->
- <div id="mywindow">
- <!-- set bottom div -->
- <div id="mywindow_bottom">
- <div id="mywindow_botton_right_corner" onmousedown="start('mywindow_botton_right_corner');"
- onmousemove="move('mywindow_botton_right_corner');" onmouseup="end('mywindow_botton_right_corner');">
- </div>
- </div>
- <!-- set right div -->
- <div id="mywindow_right" onmousedown="start('mywindow_right');" onmousemove="move('mywindow_right');"
- onmouseup="end('mywindow_right');">
- </div>
- <!-- set left div -->
- <div id="mywindow_left" onmousedown="start('mywindow_left');" onmousemove="move('mywindow_left');"
- onmouseup="end('mywindow_left')" ;>
- </div>
- <!-- set central div, it is added object -->
- <div id="central">
- </div>
- <!-- set top div -->
- <div id="mywindow_top" onmousedown="start('mywindow_top');" onmousemove="move('mywindow_top');"
- onmouseup="end('mywindow_top');">
- <div id="mywindow_top_left_corner">
- </div>
- <div id="mywindow_top_middle">
- <img class="button" id="top_close_button" src="image/window_control_close_blur.bmp"
- />
- <img class="button" id="top_max_button" src="image/window_control_max_blur.bmp"
- />
- <img class="button" id="top_min_button" src="image/window_control_min_blur.bmp"
- />
- </div>
- <div id="mywindow_top_right_corner">
- </div>
- </div>
- <!-- set corner of drag window -->
- <div id="mywindow_right_corner" onmousedown="start('mywindow_right_corner');"
- onmousemove="move('mywindow_right_corner');" onmouseup="end('mywindow_right_corner');">
- </div>
- <div id="mywindow_left_corner" onmousedown="start('mywindow_left_corner');"
- onmousemove="move('mywindow_left_corner');" onmouseup="end('mywindow_left_corner');">
- </div>
- <div id="mywindow_rBottom_corner" onmousedown="start('mywindow_rBottom_corner');"
- onmousemove="move('mywindow_rBottom_corner');" onmouseup="end('mywindow_rBottom_corner');">
- </div>
- <!-- set border of drag window -->
- <div id="mywindow_top_drag" onmousedown="start('mywindow_top_drag');"
- onmousemove="move('mywindow_top_drag');" onmouseup="end('mywindow_top_drag');">
- </div>
- <div id="mywindow_bottom_drag" onmousedown="start('mywindow_bottom_drag');"
- onmousemove="move('mywindow_bottom_drag');" onmouseup="end('mywindow_bottom_drag');">
- </div>
- </div>
- </body>
- </html>
- /**
- * set select button, use list as button
- */
- /* set list button */
- li {
- display: inline;
- white-space: nowrap;
- float: left;
- border: 0 solid white;
- border-right-width: 2px;
- border-bottom-width: 10px;
- }
- /* set <a> */
- a {
- background-color: purple;
- color: white;
- text-decoration: none;
- padding: 4px 6px;
- }
- /* set <a>: hover */
- a:hover {
- background-color: #FF5500;
- }
- /*
- * set every div position
- */
- div {
- position: absolute;
- }
- /**
- * set window
- */
- #mywindow {
- background-image: url("image/window_bgImage.png");
- /* assign appear position */
- top: 100px;
- left: 200px;
- /* assign initialization size of window */
- width: 500px;
- height: 400px;
- }
- /**
- * set bottom div of window
- */
- #mywindow_bottom {
- background-image: url("image/window_bottom_middle_border.bmp");
- background-repeat: repeat-x;
- top: 374px;
- left: 0px;
- width: 100%;
- height: 26px;
- }
- /* set drag div of bottom */
- #mywindow_botton_right_corner {
- background-image: url("image/window_control_drag.bmp");
- background-repeat: no-repeat;
- top: 8px;
- left: 486px;
- width: 12px;
- height: 12px;
- cursor: nw-resize;
- }
- /**
- * set right div of window
- */
- #mywindow_left {
- background-image: url("image/window_left_border.bmp");
- background-repeat: repeat-y;
- top: 0px;
- left: 0px;
- width: 4px;
- height: 100%;
- cursor: e-resize;
- }
- /**
- * set central div
- */
- #central {
- top: 10%;
- left: 10%;
- width: 80%;
- height: 80%;
- }
- /**
- * set left div of window
- */
- #mywindow_right {
- background-image: url("image/window_right_border.bmp");
- background-repeat: repeat-y;
- top: 0px;
- left: 100%;
- width: 4px;
- height: 100%;
- cursor: e-resize;
- }
- /**
- * set top div of window
- */
- #mywindow_top {
- background-image: url("image/window_top_header.bmp");
- background-repeat: repeat-x;
- top: 0px;
- left: 0px;
- width: 100%;
- height: 30px;
- }
- /* set left corner div of top */
- #mywindow_top_left_corner {
- top: 0px;
- left: 0px;
- background-image: url("image/window_top_left_corner.gif");
- background-repeat: no-repeat;
- width: 8px;
- height: 100%;
- }
- /* set middle div of top, and set buttom image */
- #mywindow_top_middle {
- top: 0px;
- left: 425px;
- }
- img.button {
- float: right;
- margin: 5px 1px;
- }
- /* set right corner div of top */
- #mywindow_top_right_corner {
- top: 0px;
- left: 498px;
- background-image: url("image/window_top_right_corner.bmp");
- background-repeat: no-repeat;
- width: 8px;
- height: 100%;
- }
- #mywindow_right_corner {
- top: 0%;
- left: 100%;
- width: 4px;
- height: 4px;
- cursor: ne-resize;
- }
- #mywindow_left_corner {
- top: 0%;
- left: 0%;
- width: 4px;
- height: 4px;
- cursor: nw-resize;
- }
- #mywindow_rBottom_corner {
- top: 99%;
- left: 0%;
- width: 4px;
- height: 4px;
- cursor: ne-resize;
- }
- #mywindow_top_drag {
- top: 0%;
- left: 2%;
- width: 96%;
- height: 4px;
- cursor: n-resize;
- }
- #mywindow_bottom_drag {
- top: 99%;
- left: 2%;
- width: 96%;
- height: 4px;
- cursor: n-resize;
- }
- function MyWindow() {
- /* background left right bottom top div */
- var bgDiv = null;
- var leftDiv = null;
- var rightDiv = null;
- var bottomDiv = null;
- var topDiv = null;
- /* old values of window */
- var oldTop = 100;
- var oldLeft = 200;
- var oldWidth = 500;
- var oldHeight = 400;
- var clickTopDivX = null;
- var clickTopDivY = null;
- /* record whether max size */
- var maxSize = false;
- /* record whether adjust */
- var adjust = true;
- /* record click whether in window */
- var clickInWindow = false;
- /* record add object */
- var addObj = null;
- /* record whether mouse is down*/
- var down = 0;
- /*
- * set five div of window
- */
- this.setBackgroundDiv = function(idName) {
- bgDiv = document.getElementById(idName);
- };
- this.setLeftDiv = function(idName) {
- leftDiv = document.getElementById(idName);
- };
- this.setRightDiv = function(idName) {
- rightDiv = document.getElementById(idName);
- };
- this.setBottomDiv = function(idName) {
- bottomDiv = document.getElementById(idName);
- }
- this.setTopDiv = function(idName) {
- topDiv = document.getElementById(idName);
- }
- /* set whether window is resize */
- this.setAdjust = function(Boolean) {
- adjust = Boolean;
- }
- /* initialize events of window div */
- this.initialEvent = function() {
- document.onclick = judgeClick;
- var close = document.getElementById("top_close_button");
- close.onmouseover = closeMouseOver;
- close.onmouseout = closeMouseOut;
- close.onmousedown = closeMouseDown;
- close.onclick = this.removeWindow;
- var max = document.getElementById("top_max_button");
- max.onmouseover = maxMouseOver;
- max.onmouseout = maxMouseOut;
- max.onmousedown = maxMouseDown;
- max.onclick = showNormalOrMax;
- var min = document.getElementById("top_min_button");
- min.onmouseover = minMouseOver;
- min.onmouseout = minMouseOut;
- min.onmousedown = minMouseDown;
- min.onclick = hiddenWindow;
- }
- /* hidden window */
- this.hidden = function() {
- bgDiv.style.display="none";
- };
- /* show window */
- this.show = function() {
- bgDiv.style.display="";
- };
- /*
- * add object to window, and delete it
- */
- this.addObject = function(){
- if (addObj == null) {
- addObj = document.createElement("p");
- addObj.innerHTML = "公鸡中的战斗机,OYE! 你太有才了!";
- document.getElementById("central").appendChild(addObj);
- }
- }
- this.deleteObject = function() {
- addObj.parentNode.removeChild(addObj);
- addObj = null;
- }
- /*
- * chang window size function
- * curTop curLeft: new top left corner coordinate
- * curRight curBottom: new bottom right corner coordinate
- * curWidth curHeight: new width and height
- * Boolean: whether record new data
- */
- function changeWindowSize(curTop, curLeft, curWidth, curHeight, Boolean) {
- bgDiv.style.top = curTop;
- bgDiv.style.left = curLeft;
- bgDiv.style.width = curWidth;
- bgDiv.style.height = curHeight;
- /* record new data */
- if (Boolean) {
- oldTop = curTop;
- oldLeft = curLeft;
- oldWidth = curWidth;
- oldHeight = curHeight;
- }
- bottomDiv.style.top = curHeight - 26;
- var bDivRCorner = document.getElementById("mywindow_botton_right_corner");
- bDivRCorner.style.left = curWidth - 12;
- var tDivMiddleButtom = document.getElementById("mywindow_top_middle");
- tDivMiddleButtom.style.left = curWidth - 72;
- var tDivRightCorner = document.getElementById("mywindow_top_right_corner");
- tDivRightCorner.style.left = curWidth - 2;
- }
- /* change image of assign idName */
- function changeImage(idName, imgSrc) {
- var image = document.getElementById(idName);
- image.src = imgSrc;
- }
- /* show max size of window */
- this.showMaxSize = function() {
- if (adjust) {
- maxSize = true;
- changeImage("top_max_button", "image/window_control_resile_normall.bmp");
- var maxWidth = screen.availWidth;
- var maxHeight = screen.availHeight;
- changeWindowSize(0, 0, maxWidth, maxHeight, false);
- }
- }
- /* remove window */
- this.removeWindow = function() {
- if (bgDiv != null)
- bgDiv.parentNode.removeChild(bgDiv);
- }
- /*
- * get top, left, width, height values of window
- */
- this.getTop = function() {
- alert("My top pixel of window is: " + bgDiv.offsetTop);
- }
- this.getLeft = function() {
- alert("My Left pixel of window is: " + bgDiv.offsetLeft);
- }
- this.getWidth = function() {
- alert("My width pixel of window is: " + bgDiv.offsetWidth);
- }
- this.getHeight = function() {
- alert("My height pixel of window is: " + bgDiv.offsetHeight);
- }
- /*
- * get mouse location
- * return [x, y]: x and y coordinate of mouse
- */
- function getMouseXY() {
- var x = event.pageX || (event.clientX
- + (document.documentElement.scrollLeft
- || document.body.scrollLeft
- )
- );
- var y= event.pageY || (event.clientY
- + (document.documentElement.scrollTop
- || document.body.scrollTop
- )
- );
- return [x, y];
- }
- /*
- * judge mouse click whether in window
- * in other words, judge window whether is lived
- */
- function judgeClick() {
- /* get mouse click site */
- var coor = getMouseXY();
- /* judge whether in window */
- var myW = document.getElementById("mywindow");
- var closeImage = document.getElementById("top_close_button");
- var maxImage = document.getElementById("top_max_button");
- var minImage = document.getElementById("top_min_button");
- if (coor[0] >= myW.offsetLeft && coor[0] <= (myW.offsetLeft + myW.offsetWidth)
- && coor[1] >= myW.offsetTop && coor[1] <= (myW.offsetHeight + myW.offsetTop)) {
- clickInWindow = true;
- closeImage.src = "image/window_control_close_normall.bmp";
- if(maxSize == true) {
- maxImage.src = "image/window_control_resile_normall.bmp";
- } else {
- maxImage.src = "image/window_control_max_normall.bmp";
- }
- minImage.src = "image/window_control_min_normall.bmp";
- } else {
- clickInWindow = false;
- closeImage.src = "image/window_control_close_blur.bmp";
- if(maxSize == true) {
- maxImage.src = "image/window_control_resile_blur.bmp";
- } else {
- maxImage.src = "image/window_control_max_blur.bmp";
- }
- minImage.src = "image/window_control_min_blur.bmp";
- }
- }
- /*
- * top button events function
- * there are mouse down, mouse move, mouse up and mouse move
- */
- function closeMouseDown() {
- changeImage("top_close_button", "image/window_control_close_mousedown.bmp");
- }
- function closeMouseOver() {
- if(clickInWindow == true) {
- changeImage("top_close_button", "image/window_control_close_mouseon.bmp");
- } else {
- changeImage("top_close_button", "image/window_control_close_blur.bmp");
- }
- }
- function closeMouseOut() {
- if(clickInWindow == true) {
- changeImage("top_close_button", "image/window_control_close_normall.bmp");
- } else {
- changeImage("top_close_button", "image/window_control_close_blur.bmp");
- }
- }
- function maxMouseDown(){
- if (maxSize == true) {
- changeImage("top_max_button", "image/window_control_resile_mousedown.bmp");
- }
- else {
- changeImage("top_max_button", "image/window_control_max_mousedown.bmp");
- }
- }
- function maxMouseOver() {
- if (clickInWindow == true) {
- if (maxSize == true) {
- changeImage("top_max_button", "image/window_control_resile_mouseon.bmp");
- }
- else {
- changeImage("top_max_button", "image/window_control_max_mouseon.bmp");
- }
- }
- else {
- if (maxSize == true) {
- changeImage("top_max_button", "image/window_control_resile_blur.bmp");
- }
- else {
- changeImage("top_max_button", "image/window_control_max_blur.bmp");
- }
- }
- }
- function maxMouseOut() {
- if(clickInWindow == true) {
- if (maxSize == true) {
- changeImage("top_max_button", "image/window_control_resile_normall.bmp");
- } else {
- changeImage("top_max_button", "image/window_control_max_normall.bmp");
- }
- } else {
- if (maxSize == true) {
- changeImage("top_max_button", "image/window_control_resile_blur.bmp");
- } else {
- changeImage("top_max_button", "image/window_control_max_blur.bmp");
- }
- }
- }
- /* max mouse click event function */
- function showNormalOrMax(){
- if (maxSize && adjust) {
- maxSize = false;
- changeWindowSize(oldTop, oldLeft, oldWidth, oldHeight, true);
- } else {
- showMaxSize();
- }
- }
- function minMouseDown() {
- changeImage("top_min_button", "image/window_control_min_mousedown.bmp");
- }
- function minMouseOver() {
- if(clickInWindow == true) {
- changeImage("top_min_button", "image/window_control_min_mouseon.bmp");
- } else {
- changeImage("top_min_button", "image/window_control_min_blur.bmp");
- }
- }
- function minMouseOut() {
- if(clickInWindow == true) {
- changeImage("top_min_button", "image/window_control_min_normall.bmp");
- } else {
- changeImage("top_min_button", "image/window_control_min_blur.bmp");
- }
- }
- /*
- * drag events function
- */
- this.start = function(idName) {
- if(idName == "mywindow_top") {
- var coor = getMouseXY();
- clickTopDivX = coor[0];
- clickTopDivY = coor[1];
- }
- document.getElementById(idName).setCapture();
- down = 1;
- }
- this.move = function(idName) {
- var curTop = oldTop;
- var curLeft = oldLeft;
- var curWidth = oldWidth;
- var curHeight = oldHeight;
- var coor = getMouseXY();
- if (down && adjust && !maxSize) {
- if(idName == "mywindow_rBottom_corner") {
- curLeft = coor[0];
- curWidth += oldLeft - curLeft;
- curHeight = coor[1] - oldTop;
- if(curWidth < 80) {
- curLeft = oldLeft + oldWidth - 80;
- }
- } else if(idName == "mywindow_left_corner") {
- curTop = coor[1];
- curLeft = coor[0];
- curWidth += oldLeft - curLeft;
- curHeight += oldTop - curTop;
- if(curHeight < 40) {
- curTop = oldTop + oldHeight - 40;
- }
- if(curWidth < 80) {
- curLeft = oldLeft + oldWidth - 80;
- }
- } else if(idName == "mywindow_right_corner") {
- curTop = coor[1];
- curWidth = coor[0] - curLeft;
- curHeight = oldHeight + oldTop - curTop;
- if(curHeight < 40) {
- curTop = oldTop + oldHeight - 40;
- }
- } else if(idName == "mywindow_top") {
- curTop = curTop + coor[1] - clickTopDivY;
- curLeft = curLeft + coor[0] - clickTopDivX;
- clickTopDivX = coor[0];
- clickTopDivY = coor[1];
- } else if(idName == "mywindow_right") {
- curWidth = coor[0] - oldLeft;
- } else if(idName == "mywindow_left") {
- curLeft = coor[0];
- curWidth += oldLeft - curLeft;
- if(curWidth < 80) {
- curLeft = oldLeft + oldWidth - 80;
- }
- } else if(idName == "mywindow_top_drag") {
- curTop = coor[1];
- curHeight += oldTop - curTop;
- if(curHeight < 40) {
- curTop = oldTop + oldHeight - 40;
- }
- } else if(idName == "mywindow_bottom_drag"){
- curHeight = coor[1] - oldTop;
- } else {
- // drag right corner of window
- curWidth = coor[0] - oldLeft;
- curHeight = coor[1] - oldTop;
- }
- if(curWidth < 80) {
- curWidth = 80;
- }
- if(curHeight < 40) {
- curHeight = 40;
- }
- changeWindowSize(curTop, curLeft, curWidth, curHeight, true);
- }
- }
- this.end = function(idName) {
- down = 0;
- document.getElementById(idName).releaseCapture();
- }
- }
来源: