<! DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 transitional//en"
"Http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
<title>javascript Buffer Open Layer </title>
<meta http-equiv= "Content-type" content= "text/html; charset=gb2312 "/>
<style type= "Text/css" >
* {margin:0; padding:0;}
body {margin:5px auto; text-align:center; background: #f0f0f0;}
#d1 {position:absolute; top:20px; left:20px; width:100px; height:60px; border:1px solid #808;}
#d2 {position:absolute; top:100px; left:20px; width:100px; height:60px; border:1px solid #808;}
#open1, #close1, #open2, #close2 {cursor:pointer; background: #ccf; margin:5px;}
#open1, #open2 {display:block;}
#close1, #close2 {display:none;}
</style>
<body>
<div id= "D1" >
Move position
<span id= "Open1" onclick= "Fo1 ()" >Open</span>
<span id= "Close1" onclick= "FC1 ()" >Close</span>
</div>
<div id= "D2" >
Change size
<span id= "Open2" onclick= "Fo2 ()" >Open</span>
<span id= "Close2" onclick= "FC2 ()" >Close</span>
</div>
<div id= "Debug" >AAA</div>
<div>http://www.999jiujiu.com/</div>
<script type= "Text/javascript" >
<[cdata[
var sl = 20; Initial left value
var el = 500; End left value
var sw = 100;//Initial Width value
var ew = 580;//End Width value
var p = 10; Buffer variable
var t = 20; Time variable
var D1 = document.getElementById (' D1 ');
var d2 = document.getElementById (' D2 ');
var debug = document.getElementById (' Debug ');
var open1 = document.getElementById (' open1 ');
var close1 = document.getElementById (' close1 ');
var open2 = document.getElementById (' Open2 ');
var close2 = document.getElementById (' Close2 ');
function Fo1 () {
var cl = parseint (GetStyle (D1, ' left '));
Current left value
if (Cl<el) {
D1.style.left = cl + Math.ceil ((EL-CL)/p) + ' px ';
Current value + buffer increment
debug.innerhtml = GetStyle (D1, ' left ');
CL + ' px ';
SetTimeout (' Fo1 () ', t);
} else {
D1.style.left = el + ' px ';
Open1.style.display = ' None ';
Close1.style.display = ' block ';
}
}
function Fc1 () {
var cl = parseint (GetStyle (D1, ' left '));
Current left value
if (CL>SL) {
D1.style.left = Cl-math.ceil ((CL-SL)/p) + ' px ';
Current value-buffer increment
debug.innerhtml = GetStyle (D1, ' left ');
CL + ' px ';
SetTimeout (' Fc1 () ', t);
} else {
D1.style.left = sl + ' px ';
Open1.style.display = ' block ';
Close1.style.display = ' None ';
}
}
function Fo2 () {
var cw = parseint (GetStyle (D2, ' width '));
Current width value
if (Cw<ew) {
D2.style.width = CW + Math.ceil ((EW-CW)/p) + ' px ';
Current value + buffer increment
debug.innerhtml = GetStyle (d2, ' width ');
CW + ' px ';
SetTimeout (' Fo2 () ', t);
} else {
D2.style.width = ew + ' px ';
Open2.style.display = ' None ';
Close2.style.display = ' block ';
}
}
function Fc2 () {
var cw = parseint (GetStyle (D2, ' width '));
Current width value
if (CW>SW) {
D2.style.width = Cw-math.ceil ((CW-SW)/p) + ' px ';
Current value-buffer increment
debug.innerhtml = GetStyle (d2, ' width ');
CW + ' px ';
SetTimeout (' fc2 () ', t);
} else {
D2.style.width = sw + ' px ';
Open2.style.display = ' block ';
Close2.style.display = ' None ';
}
}
function GetStyle (elem, name) {
if (Elem.style[name]) {return elem.style[name];}
else if (Elem.currentstyle) {return elem.currentstyle[name];}
else if (Document.defaultview && document.defaultView.getComputedStyle) {
Name = Name.replace (/([A-z])/g, "-$1");
Name = Name.tolowercase ();
var s = document.defaultView.getComputedStyle (Elem, "");
return s && s.getpropertyvalue (name);
}
else {return null;}
}
]]>
</script>
</body>
JS with buffering effect open, close, move a layer