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 相关文章推荐
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
Jan 29 Javascript
jQuery拖拽插件gridster使用指南
Apr 21 Javascript
Vue开发中整合axios的文件整理
Apr 29 Javascript
Webpack常见静态资源处理-模块加载器(Loaders)+ExtractTextPlugin插件
Jun 29 Javascript
vue修改vue项目运行端口号的方法
Aug 04 Javascript
vue-infinite-loading2.0 中文文档详解
Apr 08 Javascript
Angular5中调用第三方库及jQuery的添加的方法
Jun 07 jQuery
vue 根据数组中某一项的值进行排序的方法
Aug 30 Javascript
vue父组件触发事件改变子组件的值的方法实例详解
May 07 Javascript
微信小程序绘制半圆(弧形)进度条
Nov 18 Javascript
JS如何实现在弹出窗口中加载页面
Dec 03 Javascript
JavaScript前端面试组合函数
Jun 21 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 JSON 数据解析代码
2010/05/26 PHP
php class中public,private,protected的区别以及实例分析
2013/06/18 PHP
PHP获取文件夹大小函数用法实例
2015/07/01 PHP
在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
2017/08/07 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
js获取下拉列表框中的value和text的值示例代码
2014/01/11 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
javascript实现textarea中tab键的缩排处理方法
2015/06/26 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
JavaScript动态绑定详解
2017/09/14 Javascript
jQuery 实现左右两侧菜单添加、移除功能
2018/01/02 jQuery
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
Vue Elenent实现表格相同数据列合并
2020/11/30 Vue.js
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
[39:02]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs VGJ.T
2018/04/01 DOTA
Python使用稀疏矩阵节省内存实例
2014/06/27 Python
python实现封装得到virustotal扫描结果
2014/10/05 Python
Python2.x版本中maketrans()方法的使用介绍
2015/05/19 Python
Python计算三维矢量幅度的方法
2015/06/15 Python
python实现井字棋游戏
2020/03/30 Python
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
R vs. Python 数据分析中谁与争锋?
2017/10/18 Python
Flask 让jsonify返回的json串支持中文显示的方法
2018/03/26 Python
使用pandas批量处理矢量化字符串的实例讲解
2018/07/10 Python
神经网络相关之基础概念的讲解
2018/12/29 Python
python使用opencv实现马赛克效果示例
2019/09/28 Python
Pycharm和Idea支持的vim插件的方法
2020/02/21 Python
vscode+PyQt5安装详解步骤
2020/08/12 Python
纯CSS实现菜单、导航栏的3D翻转动画效果
2014/04/23 HTML / CSS
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
教育专业自荐书范文
2013/12/17 职场文书
2014年招生工作总结
2014/11/26 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书