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 相关文章推荐
Mootools 1.2教程 滑动效果(Slide)
Sep 15 Javascript
使用POST方式弹出窗口的两种方法示例介绍
Jan 29 Javascript
js unicode 编码解析关于数据转换为中文的两种方法
Apr 21 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
Aug 26 Javascript
JS模拟简易滚动条效果代码(附demo源码)
Apr 05 Javascript
详解在Angular项目中添加插件ng-bootstrap
Jul 04 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
Aug 30 Javascript
在vue中使用echarts图表实例代码详解
Oct 22 Javascript
Vue实现附件上传功能
May 28 Javascript
jquery实现异步文件上传ajaxfileupload.js
Oct 23 jQuery
微信小程序实现简单的select下拉框
Nov 23 Javascript
原生js实现放大镜组件
Jan 22 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
destoon复制新模块的方法
2014/06/21 PHP
php 魔术方法详解
2014/11/11 PHP
PHP微信红包API接口
2015/12/05 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
HR vs CL BO3 第二场 2.13
2021/03/10 DOTA
javascript getElementsByName()的用法说明
2009/07/31 Javascript
JScript 脚本实现文件下载 一般用于下载木马
2009/10/29 Javascript
Javascript 获取链接(url)参数的方法[正则与截取字符串]
2010/02/09 Javascript
java与javascript之间json格式数据互转介绍
2013/10/29 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
基于OL2实现百度地图ABCD marker的效果
2015/10/01 Javascript
jQuery继承extend用法详解
2016/10/10 Javascript
jQuery  ready方法实现原理详解
2016/10/19 Javascript
AngularJs表单验证实例代码解析
2016/11/29 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
vue解决跨域路由冲突问题思路解析
2017/11/03 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
javascript实现数字时钟效果
2021/02/06 Javascript
Python连接mysql数据库的正确姿势
2016/02/03 Python
python实现list元素按关键字相加减的方法示例
2017/06/09 Python
python中将函数赋值给变量时需要注意的一些问题
2017/08/18 Python
python的Tqdm模块的使用
2018/01/10 Python
python中(str,list,tuple)基础知识汇总
2018/02/20 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
django中上传图片分页三级联动效果的实现代码
2019/08/30 Python
Python基于正则表达式实现计算器功能
2020/07/13 Python
英国领先的在线高尔夫商店:Scottsdale Golf
2019/08/26 全球购物
管理提升方案
2014/06/04 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
音乐教师个人总结
2015/02/06 职场文书
以权谋私检举信范文
2015/03/02 职场文书
元旦联欢晚会主持词
2015/07/01 职场文书
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android
Android Rxjava3 使用场景详解
2022/04/07 Java/Android