- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
- <head>
- <title>层展开/关闭 - 运动缓冲效果</title>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
- <script type="text/javascript">
- function Scroll(obj, h, s){
- var hh = h || 200;
- var ss = s || 1.2;
- var obj = typeof(obj)=="string"?document.getElementById(obj):obj;
- if(obj == undefined){return false;}
- var status = obj.getAttribute("status")==null;
- var oh = parseInt(obj.offsetHeight);
- obj.style.height = oh;
- obj.style.display = "block";
- obj.style.overflow = "hidden";
- if(obj.getAttribute("oldHeight") == null){
- obj.setAttribute("oldHeight", oh);
- }else{
- var oldH = Math.ceil(obj.getAttribute("oldHeight"));
- }
- var reSet = function(){
- if(status){
- if(oh < h){
- oh = Math.ceil(h-(h-oh)/s);
- obj.style.height = oh+"px";
- }else{
- obj.setAttribute("status",false);
- window.clearInterval(IntervalId);
- }
- }else{
- obj.style.height = oldH+"px";
- obj.removeAttribute("status");
- window.clearInterval(IntervalId);
- }
- }
- var IntervalId = window.setInterval(reSet,10);
- return status;
- }
- window.onload= function(){
- var $ = function(id){return document.getElementById(id)};
- $('menu').onclick = function(){
- Scroll('menu',this.scrollHeight,1.2);
- }
- $('test').onclick = function(){
- Scroll('test',300,1.2);
- }
- }
- </script>
- </head>
- <body>
- <div id="test" style="border:1px solid #f00;width:200px">单击后 展开指定高度 300px</div>
- <div id="menu" style="position:absolute;top:10px;left: 400px;border:1px solid #ccc;width:160px;height:16px;text-align:center;cursor:pointer;overflow:hidden;">
- 单击后 根据展开的高度根据内容而变<br />
- 1<br />
- 2<br />
- 3<br />
- 4<br />
- 5<br />
- 6<br />
- 7<br />
- 8<br />
- 9<br />
- 10<br />
- 11<br />
- 12<br />
- 13<br />
- 14<br />
- 15<br />
- 16<br />
- 17<br />
- 18<br />
- 19<br />
- 20<br />
- 21<br />
- 22<br />
- 23<br />
- 24<br />
- 25<br />
- 26<br />
- 27<br />
- 28<br />
- 29<br />
- </div>
- </body>
- </html>
本文转自许琴 51CTO博客,原文链接:http://blog.51cto.com/xuqin/925215,如需转载请自行联系原作者