div显示隐藏效果

div显示隐藏效果
http://bbs.blueidea.com/thread-2755132-1-1.html
自己看了一下别人的一些代码,自己也学着做了个,一直知道这种层显示隐藏效果最关键的地方就是应用暂停(setTimeout及clearTimeout)或是时间间隔(setInterval及clearInterval)成对应用制作成的。如果在执行一组指定的代码前等待一段时间,则使用暂停。如果要反复执行某些代码,就使用时间间隔。这个基本上是原理了。
再者,就是很多人在制作页面时,都喜欢用font-size:12px;来限制字体的大小,感觉这个是一个设计的错误,因为用户不能使用浏览器的文字大小功能对文字进行调解,不利于年纪大的人浏览,所以我使用了font:75% Verdana, Arial, Helvetica, sans-serif;百分比字体。这样如果别人感觉字体小就可以调整大小了,而且这个设置恰好是12像素的字体大小。呵呵,在做项目时突然发现的。如果有知道的,请多给些宝贵建议,代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>div动画显示</title>
<style>
* { margin:0; padding:0;}
body { text-align:center; font:75% Verdana, Arial, Helvetica, sans-serif;}
h1 { font:125% Arial, Helvetica, sans-serif; text-align:left; font-weight:bolder; background:#333;  padding:3px; display:block; color:#99CC00}
.class1 { width:40%; background:#CCC; position:relative; margin:0 auto; padding:5px;}
span { position:absolute; right:10px; top:8px; cursor:pointer; color:yellow;}
p { text-align:left; line-height:20px; background:#333; padding:3px; margin-top:5px; color:#99CC00}
#class1content { height:300px;overflow:hidden}
</style>
<script>
function $(element){
return element = document.getElementById(element);
}
function $D(){
var d=$('class1content');
var h=d.offsetHeight;
var maxh=300;
function dmove(){
h+=50; //设置层展开的速度
if(h>=maxh){
d.style.height='300px';
clearInterval(iIntervalId);
}else{
d.style.display='block';
d.style.height=h+'px';
}
}
iIntervalId=setInterval(dmove,2);
}
function $D2(){
var d=$('class1content');
var h=d.offsetHeight;
var maxh=300;
function dmove(){
h-=50;//设置层收缩的速度
if(h<=0){
d.style.display='none';
clearInterval(iIntervalId);
}else{
d.style.height=h+'px';
}
}
iIntervalId=setInterval(dmove,2);
}
function $use(){
var d=$('class1content');
var sb=$('stateBut');
if(d.style.display=='none'){
$D();
sb.innerHTML='展开';
}else{
$D2();
sb.innerHTML='收缩';
}
}
</script>
</head>
<body>
<div class="class1">
<h1>靠自己</h1>
<span id="stateBut" οnclick="$use()">展开</span>
<p id="class1content">小蜗牛问妈妈:为什么我们从生下来,就要背负这个又硬又重的壳呢?<br />
妈妈:因为我们的身体没有骨骼的支撑,只能爬,又爬不快。所以要这个壳的保护!<br />
小蜗牛:毛虫姊姊没有骨头,也爬不快,为什么她却不用背这个又硬又重的壳呢? <br />
妈妈:因为毛虫姊姊能变成蝴蝶,天空会保护她啊。 <br />
小蜗牛:可是蚯蚓弟弟也没骨头爬不快,也不会变成蝴蝶他什么不背这个又硬又重的壳呢? <br />
妈妈:因为蚯蚓弟弟会钻土, 大地会保护他啊。 <br />
小蜗牛哭了起来:我们好可怜,天空不保护,大地也不保护。 <br />
蜗牛妈妈安慰他:所以我们有壳啊!我们不靠天,也不靠地,我们靠自己。</p>
</div>
</body>
</html>

代码执行效果在ie下有点不流畅,在firefox下测试流畅,希望各位兄弟姐妹帮我也改改试试,使在ie下流畅起来

对上面的class1content选择器样式进行了修改,加了overflow:hidden,谢谢test0236四楼的老兄
大家可以更改速度来激发自己的想像力,创造更多的不一样的效果

发现一个问题:目前在实际应用中,innerHTML是现实的标准firefox,IE都支持,innerText只有IE支持,firefox使用的是标准的W3C标准textContent 。所以我把上面的innerText替换为innerHTML

---------------------------------------------------------------------------

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml" >
<head>
<title>展开折叠例子</title>
<style>
   /*公共设置*/
   html{ border:0;}
   body{ background:#fff;}
   ul,dl{ list-style-type:none;}
   body,form,ul,li,dl,dt,dd{ margin:0; padding:0;}
   body,div,li,dt,dd{ font-family:宋体,sans-serif; font-size:12px; color:#333; word-break:break-all;}
   /*布局设置*/
   .main{ width:960px; margin:auto; overflow:hidden;}
   .left200{ width:200px; float:left;}
   /*版块一设置*/
   #titleone{ width:100%; overflow:hidden; background:url('http://www.bbobb.cn/images/list1b.gif') no-repeat 180px 5px #80BFFF;}
   #titleone dt{ float:left; width:75%; height:18px; padding-top:7px; text-indent:12px;}
   #titleone dd{ float:right; width:25%; height:18px; padding-top:7px;}
   #bodyone{ border:solid 1px #80BFFF; height:0px; overflow:hidden;}
   #bodyone div{ padding:5px;}
</style>
<script>
   var h = 200;//设置高度
   var s = 1;//设置速度
   function zk()
   {
      var el = document.getElementById("bodyone");
      if(parseInt(el.currentStyle.height) < h)
      {
         el.style.height = (parseInt(el.currentStyle.height) + 2) + "px";
         setTimeout(zk, s);
      }
   }
   function ss()
   {
      var el = document.getElementById("bodyone");
      if(parseInt(el.currentStyle.height) > 0)
      {
         el.style.height = (parseInt(el.currentStyle.height) - 2) + "px";
         setTimeout(ss, s);
      }
   }
   function zkss()
   {
      var el = document.getElementById("bodyone");
      if(parseInt(el.currentStyle.height) == 0)
      {
         zk();
         document.getElementById("titleone").style.background = "url('http://www.bbobb.cn/images/list1a.gif') no-repeat 180px 5px #80BFFF";
      }
      if(parseInt(el.currentStyle.height) == h)
      {
         ss();
         document.getElementById("titleone").style.background = "url('http://www.bbobb.cn/images/list1b.gif') no-repeat 180px 5px #80BFFF";
      }
   }
   window.onload = function()
   {
      document.getElementById("titleone").onclick = zkss;
   }
</script>
</head>
<body class="main">
   <div class="left200">
      <dl id="titleone">
         <dt>展开折叠例子</dt>
         <dd></dd>
      </dl>
      <div id="bodyone">
         <div>
<Font Size=3 Face="楷体_GB2312">
<Font Color="#FF00FF">当</Font><Font Color="#F000FF">某</Font><Font Color="#E000FF">个</Font><Font Color="#D000FF">事</Font><Font Color="#C100FF">情</Font><Font Color="#B100FF">是</Font><Font Color="#A100FF">不</Font><Font Color="#9100FF">被</Font><Font Color="#8200FF">允</Font><Font Color="#7200FF">许</Font><Font Color="#6200FF">的</Font><Font Color="#5200FF">时</Font><Font Color="#4300FF">候</Font><Font Color="#3300FF">我</Font><Font Color="#2300FF">们</Font><Font Color="#1300FF">不</Font><Font Color="#0400FF">应</Font><Font Color="#0009FF">该</Font><Font Color="#0015FF">在</Font><Font Color="#0021FF">这</Font><Font Color="#002DFF">个</Font><Font Color="#0038FF">点</Font><Font Color="#0044FF">上</Font><Font Color="#0050FF">集</Font><Font Color="#005CFF">中</Font><Font Color="#0068FF">力</Font><Font Color="#0074FF">量</Font><Font Color="#0080FF">弄</Font><Font Color="#008BFF">到</Font><Font Color="#0097FF">两</Font><Font Color="#00A3FF">败</Font><Font Color="#00AFFF">巨</Font><Font Color="#00BBFF">伤</Font><Font Color="#00C0F6">,</Font><Font Color="#00C0E6">尤</Font><Font Color="#00C0D7">其</Font><Font Color="#00C0C7">是</Font><Font Color="#00C0B7">这</Font><Font Color="#00C0A7">个</Font><Font Color="#00C098">问</Font><Font Color="#00C088">题</Font><Font Color="#00C078">本</Font><Font Color="#00C068">身</Font><Font Color="#00C059">对</Font><Font Color="#00C049">整</Font><Font Color="#00C039">个</Font><Font Color="#00C029">舆</Font><Font Color="#00C01A">论</Font><Font Color="#00C00A">发</Font><Font Color="#06C000">展</Font><Font Color="#16C000">方</Font><Font Color="#25C000">向</Font><Font Color="#35C000">不</Font><Font Color="#45C000">起</Font><Font Color="#55C000">决</Font><Font Color="#64C000">定</Font><Font Color="#74C000">性</Font><Font Color="#84C000">作</Font><Font Color="#93C000">用</Font><Font Color="#A3C000">的</Font><Font Color="#B3C000">时</Font><Font Color="#C3C000">候</Font><Font Color="#D2C000">。</Font><Font Color="#E2C000">当</Font><Font Color="#F2C000">这</Font><Font Color="#FFBE00">个</Font><Font Color="#FFB200">不</Font><Font Color="#FFA600">被</Font><Font Color="#FF9B00">允</Font><Font Color="#FF8F00">许</Font><Font Color="#FF8300">,</Font><Font Color="#FF7700">我</Font><Font Color="#FF6B00">们</Font><Font Color="#FF5F00">可</Font><Font Color="#FF5300">以</Font><Font Color="#FF4800">迅</Font><Font Color="#FF3C00">速</Font><Font Color="#FF3000">转</Font><Font Color="#FF2400">移</Font><Font Color="#FF1800">战</Font><Font Color="#FF0C00">线</Font><Font Color="#FF0000">。</Font><Font Color="#FF0B00">比</Font><Font Color="#FF1700">如</Font><Font Color="#FF2300">政</Font><Font Color="#FF2F00">治</Font><Font Color="#FF3B00">不</Font><Font Color="#FF4700">允</Font><Font Color="#FF5200">许</Font><Font Color="#FF5E00">谈</Font><Font Color="#FF6A00">论</Font><Font Color="#FF7600">我</Font><Font Color="#FF8200">们</Font><Font Color="#FF8E00">可</Font><Font Color="#FF9A00">以</Font><Font Color="#FFA500">谈</Font><Font Color="#FFB100">论</Font><Font Color="#FFBD00">戈</Font><Font Color="#F3C000">尔</Font><Font Color="#E3C000">巴</Font><Font Color="#D3C000">乔</Font><Font Color="#C4C000">夫</Font><Font Color="#B4C000">屁</Font><Font Color="#A4C000">股</Font><Font Color="#94C000">的</Font><Font Color="#85C000">分</Font><Font Color="#75C000">裂</Font><Font Color="#65C000">以</Font><Font Color="#55C000">及</Font><Font Color="#46C000">性</Font><Font Color="#36C000">和</Font><Font Color="#26C000">色</Font><Font Color="#17C000">情</Font><Font Color="#07C000">。</Font><Font Color="#00C009">当</Font><Font Color="#00C019">性</Font><Font Color="#00C028">和</Font><Font Color="#00C038">色</Font><Font Color="#00C048">情</Font><Font Color="#00C058">不</Font><Font Color="#00C067">可</Font><Font Color="#00C077">以</Font><Font Color="#00C087">谈</Font><Font Color="#00C097">论</Font><Font Color="#00C0A6">的</Font><Font Color="#00C0B6">时</Font><Font Color="#00C0C6">候</Font><Font Color="#00C0D6">我</Font><Font Color="#00C0E5">们</Font><Font Color="#00C0F5">转</Font><Font Color="#00BCFF">回</Font><Font Color="#00B0FF">讨</Font><Font Color="#00A4FF">论</Font><Font Color="#0098FF">恶</Font><Font Color="#008CFF">搞</Font><Font Color="#0080FF">,</Font><Font Color="#0075FF">当</Font><Font Color="#0069FF">恶</Font><Font Color="#005DFF">搞</Font><Font Color="#0051FF">不</Font><Font Color="#0045FF">被</Font><Font Color="#0039FF">允</Font><Font Color="#002EFF">许</Font><Font Color="#0022FF">的</Font><Font Color="#0016FF">时</Font><Font Color="#000AFF">候</Font><Font Color="#0300FF">我</Font><Font Color="#1200FF">们</Font><Font Color="#2200FF">迅</Font><Font Color="#3200FF">速</Font><Font Color="#4200FF">转</Font><Font Color="#5100FF">移</Font><Font Color="#6100FF">战</Font><Font Color="#7100FF">场</Font><Font Color="#8100FF">做</Font><Font Color="#9000FF">网</Font><Font Color="#A000FF">络</Font><Font Color="#B000FF">暴</Font><Font Color="#C000FF">民</Font><Font Color="#CF00FF">打</Font><Font Color="#DF00FF">老</Font><Font Color="#EF00FF">虎</Font><Font Color="#FF00FF">。</Font>
</Font>
</div>
      </div>
   </div>
</body>
</html>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值