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小知识
Oct 15 Javascript
JS中confirm,alert,prompt函数区别分析
Jan 17 Javascript
javascript ajax 仿百度分页函数
Oct 29 Javascript
yepnope.js使用详解及示例分享
Jun 23 Javascript
通过隐藏iframe实现无刷新上传文件操作
Mar 16 Javascript
Bootstrap CSS组件之按钮组(btn-group)
Dec 17 Javascript
Vue.js学习之计算属性
Jan 22 Javascript
使用canvas及js简单生成验证码方法
Apr 02 Javascript
js+html5 canvas实现ps钢笔抠图
Apr 28 Javascript
vue中使用mxgraph的方法实例代码详解
May 17 Javascript
JsonProperty 的使用方法详解
Oct 11 Javascript
vue-drag-chart 拖动/缩放图表组件的实例代码
Apr 10 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
ThinkPHP实现事务回滚示例代码
2014/06/23 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
php实现的双色球算法示例
2017/06/20 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
一个小型js框架myJSFrame附API使用帮助
2008/06/28 Javascript
javascript 尚未实现错误解决办法
2008/11/27 Javascript
js 距离某一时间点时间是多少实现代码
2013/10/14 Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
2013/12/30 Javascript
javascript动态添加、修改、删除对象的属性与方法详解
2014/01/27 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
2016/02/19 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
2016/12/07 Javascript
详解微信小程序审核不通过的解决方法
2018/01/17 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
小程序开发基础之view视图容器
2018/08/21 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
[02:17]2016完美“圣”典风云人物:Sccc专访
2016/12/03 DOTA
Python3读取文件常用方法实例分析
2015/05/22 Python
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
2018/06/09 Python
PyCharm在新窗口打开项目的方法
2019/01/17 Python
python实现日志按天分割
2019/07/22 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
CSS3 text shadow字体阴影效果
2016/01/08 HTML / CSS
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
2013/03/25 HTML / CSS
深入探究HTML5的History API
2015/07/09 HTML / CSS
戴尔英国官网:Dell英国
2017/05/27 全球购物
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
给校长的建议书200字
2014/05/16 职场文书
2014年审计工作总结
2014/11/17 职场文书
投标承诺函格式
2015/01/21 职场文书
公司规章制度范本
2015/08/03 职场文书