JS动画效果打开、关闭层的实现方法


Posted in Javascript onMay 09, 2015

本文实例讲述了JS动画效果打开、关闭层的实现方法。分享给大家供大家参考。具体如下:

<!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=utf-8" />
<title>层展开、关闭</title>
<style type="text/css">
#main{
width:500px; margin:100px;
height:500px;border:1px solid red
}
#test{
border:1px solid red;
display:none;width:10px;
height:10px; background:yellow
}
</style>
</head>
<body>
<input type="button" value="打开" id="bt" />
<input type="button" value="关闭" id="bt1" />
<div id="main"><div id="test"></div>
</div>
</body>
</html>
<script type="text/javascript">
function $ (o) {
return document.getElementById(o);
}
function XslideDown(obj,type,mX,num) {
if(!type){return;}
try{
var type1=type=="height"?"marginTop":"marginLeft";
var type2=type=="height"?"top":"left";
XSetCss(obj,[type1,XgetOffset(obj)[type2]+"px"]);
XSetCss(obj,[type,XgetOffset(obj)[type]+num+"px"]);
if(XgetOffset(obj)[type]<mX){
setTimeout(function(){XslideDown(obj,type,mX,num);},10); 
}
else{
XSetCss(obj,[type,mX])
}
}
catch(e){}
}
function XslideUp(obj,type,mX,num) {
if(!type){return;}
try{
var type1=type=="height"?"marginTop":"marginLeft";
var type2=type=="height"?"top":"left";
XSetCss(obj,[type1,XgetOffset(obj)[type2]+"px"]);
XSetCss(obj,[type,XgetOffset(obj)[type]-num+"px"]);
if(XgetOffset(obj)[type]>mX){ 
setTimeout(function(){XslideUp(obj,type,mX,num);},1); 
}
else{
XSetCss(obj,[type,mX])
obj.style.display="none";
}
}
catch(e){}
}
function XSetCss(obj,cssArgs){
if(arguments.length==2)
{ 
if(cssArgs.constructor==Object){
for(var o in cssArgs)
{
if(obj.style[o]!="undefiend")
{
obj.style[o]=cssArgs[o]; 
} 
} 
}
if(cssArgs.constructor==Array&&cssArgs.length==2){
obj.style[cssArgs[0]]=cssArgs[1]; 
}
}
}
function XgetOffset (obj) {
return {
height:obj.offsetHeight,
width:obj.offsetWidth,
top:parseInt((obj.parentNode.offsetHeight-obj.offsetHeight)/2),
left:parseInt((obj.parentNode.offsetWidth-obj.offsetWidth)/2)
}
}
function XopenDiv(o){
o.style.display="block";
XslideDown(o,"width",400,10);
XslideDown(o,"height",400,10);
}
function XcloseDiv(o){
XslideUp(o,"width",10,10);
XslideUp(o,"height",10,10);
}
$("bt").onclick=function(){
XopenDiv($("test"))
}
$("bt1").onclick=function(){
XcloseDiv($("test"))
}
</script>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
犀利的js 函数集合
Jun 11 Javascript
javascript中的继承实例代码
Apr 27 Javascript
jQuery调用WebService的实现代码
Jun 19 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
Sep 21 Javascript
需要牢记的JavaScript基础知识
Sep 25 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
Jan 10 Javascript
微信小程序组件 contact-button(客服会话按钮)详解及实例代码
Jan 10 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
Jul 18 jQuery
浅析从vue源码看观察者模式
Jan 29 Javascript
详解Vue打包优化之code spliting
Apr 09 Javascript
JS实现炫酷轮播图
Nov 15 Javascript
React自定义hook的方法
Jun 25 Javascript
js实现顶部可折叠的菜单工具栏效果实例
May 09 #Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
May 09 #Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
May 09 #Javascript
javasript实现密码的隐藏与显示
May 08 #Javascript
jquery实现动态改变div宽度和高度
May 08 #Javascript
jquery右下角自动弹出可关闭的广告层
May 08 #Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
May 08 #Javascript
You might like
php+mysql写的简单留言本实例代码
2008/07/25 PHP
php 远程关机操作的代码
2008/12/05 PHP
php 设计模式之 单例模式
2008/12/19 PHP
JSON在PHP中的应用介绍
2012/09/08 PHP
php中file_get_content 和curl以及fopen 效率分析
2014/09/19 PHP
PHP判断字符串长度的两种方法很实用
2015/09/22 PHP
PHP封装的PDO数据库操作类实例
2017/06/21 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
硬盘浏览程序,保存成网页格式便可使用
2006/12/03 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
js QQ客服悬浮效果实现代码
2014/12/12 Javascript
代码分析jQuery四种静态方法使用
2015/07/23 Javascript
javascript下拉列表菜单的实现方法
2015/11/18 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
python实现批量监控网站
2016/09/09 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
python使用Plotly绘图工具绘制柱状图
2019/04/01 Python
python logging模块的使用总结
2019/07/09 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
python实现批量修改文件名
2020/03/23 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
2020/08/07 Python
Python中return函数返回值实例用法
2020/11/19 Python
加拿大知名的国际儿童品牌:Hatley
2016/11/09 全球购物
美国复古街头服饰精品店:Need Supply Co.
2017/02/22 全球购物
泰国健康和美容服务预订网站:GoWabi
2019/06/03 全球购物
cf收人广告词
2014/03/14 职场文书
软件售后服务承诺书
2014/05/21 职场文书
企业宣传稿范文
2015/07/23 职场文书
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电