[javascript技巧] 模拟动画开/关窗口

我写一组函数,用来模拟打开和关闭窗口的动画效果。

函数调用说明:

closeWin(id),id为div的id字符串,同时div要在显示状态才会执行。
openWin(id),id为div的id字符串,同时div要在隐藏状态才会执行。

下面有代码实例,另外也可以从这个地址看到效果:http://cds.gameres.com/samples/javascriptTech/donghua.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Sank Orange">
<META NAME="Keywords" CONTENT="javascript技巧">
<META NAME="Description" CONTENT="模拟动画开/关窗口">
<script>
function closeWin(id) {
 var elem=document.getElementById(id);
 if(elem==null || elem.style.display=="none") return;
 if(window.operatingWin) {
  elem=window.operatingWin;
  elem.closing--;
 }
 else {
  if(elem.style.display=="none") return;
  elem.closing=15;
  elem.maxClosing=15;
  elem.offWidth=elem.offsetWidth/(elem.closing+1);
  elem.offHeight=elem.offsetHeight/(elem.closing+1);
  elem.maxWidth=elem.offsetWidth;
  elem.maxHeight=elem.offsetHeight;
 }
 
 if(elem.closing>0) {
  if(elem.offsetWidth-1>elem.offWidth) elem.style.width=elem.offsetWidth-elem.offWidth;
  if(elem.offsetHeight-1>elem.offHeight) elem.style.height=elem.offsetHeight-elem.offHeight;
  window.operatingWin=elem;
  setTimeout("closeWin('"+id+"')", 10);
 }
 else {
  elem.style.display="none";
  window.operatingWin=null;
 }
}

function openWin(id) {
 var elem=document.getElementById(id);
 if(elem==null) return;
 if(window.operatingWin) {
  elem=window.operatingWin;
  elem.closing++;
 }
 else {
  if(elem.style.display!="none") return;
  elem.style.display="block";
 }
 
 if(elem.closing<elem.maxClosing) {
  elem.style.width=elem.offsetWidth+elem.offWidth;
  elem.style.height=Number(elem.offsetHeight)+Number(elem.offHeight);
  window.operatingWin=elem;
  setTimeout("openWin('"+id+"')", 10);
 }
 else {
  elem.style.width=elem.maxWidth;
  elem.style.height=elem.maxHeight;
  window.operatingWin=null;
 }
}

</script>
<style>
.Win {
 position: absolute;
 border: 2px outset #CCCCCC;
 background-color: #f0f0f0;
 padding: 10px;
 left: 13%;
 font-size: medium;
 overflow: hidden;
 top: 10%;
}
button {
 font-size: medium;
}
</style>
</HEAD>

<BODY>
  <DIV class="Win" id="awin">
   <DIV>
    <p align="center"><a href="http://blog.csdn.net/cds27/">Sank Orange Blog</a></p>
    <p align="center"><a href="http://cds.gameres.com/samples/javascriptTech/donghua.html">从这里进入看实际页面效果</a></p>
    <p align="center">点下面按钮关闭窗口</p>
   </DIV>
   <p align="center">
    <BUTTON οnclick="closeWin('awin')">Close</BUTTON>
   </p>
  </DIV>

<BUTTON οnclick="openWin('awin')">Open</BUTTON>
</BODY>
</HTML>
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值