html+css+js实现xp window界面及有关功能


Posted in Javascript onMarch 26, 2013

注意: 该程序在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(); 
} 
}
Javascript 相关文章推荐
jQuery的deferred对象使用详解
Aug 20 Javascript
ExtJS DOM元素操作经验分享
Aug 28 Javascript
js判断undefined类型示例代码
Feb 10 Javascript
js函数名与form表单元素同名冲突的问题
Mar 07 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
May 08 Javascript
js限制文本框只能输入数字方法小结
Jun 16 Javascript
分享9点个人认为比较重要的javascript 编程技巧
Apr 27 Javascript
详解Angular2 之 结构型指令
Jun 21 Javascript
VueCli3构建TS项目的方法步骤
Nov 07 Javascript
深入理解 TypeScript Reflect Metadata
Dec 12 Javascript
js简单实现自动生成表格功能示例
Jun 02 Javascript
关于JavaScript中异步/等待的用法与理解
Nov 18 Javascript
jquery图片放大镜功能的实例代码
Mar 26 #Javascript
EditPlus注册码生成器(js代码实现)
Mar 25 #Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
Mar 25 #Javascript
JS上传前预览图片实例
Mar 25 #Javascript
js实现杯子倒水问题自动求解程序
Mar 25 #Javascript
js实现上传图片之上传前预览图片
Mar 25 #Javascript
使用jQuery validate 验证注册表单实例演示
Mar 25 #Javascript
You might like
JAVA/JSP学习系列之四
2006/10/09 PHP
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
2013/04/23 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
Function.prototype.call.apply结合用法分析示例
2013/07/03 Javascript
js实现俄罗斯方块小游戏分享
2014/01/31 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
2015/03/31 Javascript
js脚本分页代码分享(7种样式)
2015/08/19 Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
2017/02/14 Javascript
使用JS模拟锚点跳转的实例
2018/02/01 Javascript
vue中如何使用ztree
2018/02/06 Javascript
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
详解Vue2.0组件的继承与扩展
2018/11/23 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
2020/07/11 Javascript
python写的一个squid访问日志分析的小程序
2014/09/17 Python
tensorflow 中对数组元素的操作方法
2018/07/27 Python
详解如何将python3.6软件的py文件打包成exe程序
2018/10/09 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
Django CSRF认证的几种解决方案
2020/03/03 Python
Python3.x+pyqtgraph实现数据可视化教程
2020/03/14 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
Python如何操作docker redis过程解析
2020/08/10 Python
Python实现自动签到脚本功能
2020/08/20 Python
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
四风存在的原因分析
2014/02/11 职场文书
上海世博会口号
2014/06/19 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
2014年班主任工作总结
2014/11/08 职场文书
大学生村官工作心得体会
2016/01/23 职场文书
小学生必读成语故事大全:送给暑假的你们
2019/07/09 职场文书
Redis高并发缓存架构性能优化
2022/05/15 Redis