Hades: молодец, а то у меня уже голова не соображала 
Цитата(APro @ 4.10.2008, 19:09 ) | | Hades, не заметил баг? Если 2-3 раза на кнопку нажать, то textarea уже не в том месте появляется... (по оси X) ... это не подходит... можно хотя бы простенький пример ... plz |
APro: Да, это происходит если очень быстро нажимать на кнопку. Баг можно пофиксить, если после выдвижения прописать textarea позицию, где она дожна находиться.
Короче, версия 1.01beta 
| Код | <html> <head> <script type='text/javascript'> var l=50, t=50, w0=w=200, h0=h=100, e='px', ta, dv, open=false; function init(){ ta=document.getElementById('ta').style; dv=document.getElementById('dv').style; ta.left=dv.left=l+e; ta.width=dv.width=w+e; ta.top=dv.top=t+e; ta.height=dv.height=h+e; }
function openClose(vert){ var h, w, go, bt, step=5, speed=10; bt=document.getElementById('bt'); h=parseInt(ta.height); w=parseInt(ta.width); if (open) step=-step; go=window.setInterval(function(){ if (vert){ ta.top=(parseInt(ta.top)+step)+e; h-=Math.abs(step); } else { ta.left=(parseInt(ta.left)+step)+e; w-=Math.abs(step); } if (h<1 || w<1){ open=!open; if (open) {bt.value='Hide'; vert ? ta.top=t+h0+e : ta.left=l+w0+e;} else {bt.value='Show'; vert ? ta.top=t+e : ta.left=l+e;} window.clearInterval(go); } }, 300/speed); } </script> </head> <body onload='init();'> <input id='bt' type='button' value='Show' onclick='openClose(false);'> <div id='dv' style='z-index:2;position:absolute;background-color:#FFFFFF;'></div> <textarea id='ta' style='z-index:1;position:absolute;background-color:#EEEEFF;'></textarea> </body> </html>
|
Менять можно скорость выдвижения, плавность, направление (вниз или вправо) и местоположение на странице  |