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 相关文章推荐
jQuery 核心函数以及jQuery对象
Mar 23 Javascript
jquery 学习之二 属性 文本与值(text,val)
Nov 25 Javascript
js使用eval解析json实例与注意事项分享
Jan 18 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
Jun 10 Javascript
JS功能代码集锦
May 04 Javascript
AngularJS轻松实现双击排序的功能
Aug 30 Javascript
JavaScript注入漏洞的原理及防范(详解)
Dec 04 Javascript
利用Angular.js编写公共提示模块的方法教程
May 28 Javascript
node.js文件上传重命名以及移动位置的示例代码
Jan 19 Javascript
vue 循环加载数据并获取第一条记录的方法
Sep 26 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
Dec 03 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
Aug 07 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 socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
php新建文件的方法实例
2019/09/26 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
2013/08/14 Javascript
使用JSLint提高JS代码质量方法分享
2013/12/16 Javascript
js确认删除对话框效果的示例代码
2014/02/20 Javascript
JS动态插入并立即执行回调函数的方法
2016/04/21 Javascript
Angularjs上传文件组件flowjs功能
2017/08/07 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
vue嵌套路由与404重定向实现方法分析
2018/05/04 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
常见python正则用法的简单实例
2016/06/21 Python
Python新手入门最容易犯的错误总结
2017/04/24 Python
浅谈python中的占位符
2017/11/09 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
Python批量生成幻影坦克图片实例代码
2019/06/04 Python
浅析Windows 嵌入python解释器的过程
2019/07/26 Python
Python笔记之工厂模式
2019/11/20 Python
Bluebella法国官网:英国性感内衣品牌
2019/05/03 全球购物
Etam俄罗斯:法国女士内衣和家居服网上商店
2019/10/30 全球购物
药学专业大学生自荐信
2013/09/28 职场文书
syb养殖创业计划书
2014/01/09 职场文书
教育英语专业毕业生的求职信
2014/03/13 职场文书
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
烹饪大赛策划方案
2014/05/26 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
工作失职检讨书
2015/01/26 职场文书
员工家属慰问信
2015/03/24 职场文书
驾驶员管理制度范本
2015/08/06 职场文书
少先队中队工作总结
2015/08/14 职场文书
九年级数学教学反思
2016/02/17 职场文书
Python+uiautomator2实现自动刷抖音视频功能
2021/04/29 Python
Nginx的gzip相关介绍
2022/05/11 Servers