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 07 Javascript
jQuery制作仿腾讯web qq用户体验桌面
Aug 20 Javascript
Jquery如何实现点击时高亮显示代码
Jan 22 Javascript
js使用for循环及if语句判断多个一样的name
Sep 09 Javascript
Node.js中的流(Stream)介绍
Mar 30 Javascript
Jquery遍历Json数据的方法
Apr 20 Javascript
详细分析使用AngularJS编程中提交表单的方式
Jun 19 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
Oct 26 Javascript
前端自动化开发之Node.js的环境搭建教程
Apr 01 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
May 03 Javascript
使用form-create动态生成vue自定义组件和嵌套表单组件
Jan 18 Javascript
vue实现前台列表数据过滤搜索、分页效果
May 28 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
PHP3 safe_mode 失效漏洞
2006/10/09 PHP
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
2008/03/28 PHP
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
PHP详解ASCII码对照表与字符转换
2011/12/05 PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
2014/02/13 PHP
php格式化日期和时间格式化示例分享
2014/02/24 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
2014/09/16 PHP
PHPExcel简单读取excel文件示例
2016/05/26 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
2009/10/26 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
2013/05/02 Javascript
js的touch事件的实际引用
2014/10/13 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
2016/10/15 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
vue 之 css module的使用方法
2018/12/04 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
微信小程序后端无法保持session的原因及解决办法问题
2020/03/20 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
[01:11:46]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第一场 2月23日
2021/03/11 DOTA
Django migrations 默认目录修改的方法教程
2018/09/28 Python
python @propert装饰器使用方法原理解析
2019/12/25 Python
django执行数据库查询之后实现返回的结果集转json
2020/03/31 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
2020/05/29 Python
Jupyter Notebook添加代码自动补全功能的实现
2021/01/07 Python
亚马逊印度站:Amazon.in
2017/10/15 全球购物
数学检讨书1000字
2014/02/24 职场文书
优秀的导游求职信范文
2014/04/06 职场文书
我的中国梦主题班会
2015/08/14 职场文书
jQuery ajax - getScript() 方法和getJSON方法
2021/05/14 jQuery
html form表单基础入门案例讲解
2021/07/15 HTML / CSS
Win10开机修复磁盘错误怎么跳过?Win10关闭开机磁盘检查的方法
2022/09/23 数码科技