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中null与undefined分析
Jul 25 Javascript
11款基于Javascript的文件管理器
Oct 25 Javascript
jQuery实现伸展与合拢panel的方法
Apr 30 Javascript
js显示文本框提示文字的方法
May 07 Javascript
javascript动态生成树形菜单的方法
Nov 14 Javascript
angularJs关于指令的一些冷门属性详解
Oct 24 Javascript
JavaScript实现省市县三级级联特效
May 16 Javascript
javascript浏览器用户代理检测脚本实现方法
Oct 27 Javascript
详解Ubuntu安装angular-cli遇到的坑
Sep 08 Javascript
Angular PWA使用的Demo示例
Jan 31 Javascript
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
Aug 27 jQuery
JavaScript中如何对多维数组(矩阵)去重的实现
Dec 04 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
laravel安装和配置教程
2014/10/29 PHP
Zend Framework教程之Zend_Layout布局助手详解
2016/03/04 PHP
PHP赋值的内部是如何跑的详解
2019/01/13 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
PHP children()函数讲解
2019/02/03 PHP
使用prototype.js 的时候应该特别注意的几个问题.
2007/04/12 Javascript
实现JavaScript中继承的三种方式
2009/10/16 Javascript
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
js改变透明度实现轮播图的算法
2020/08/24 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
2017/01/19 Javascript
微信小程序 wx.request方法的异步封装实例详解
2017/05/18 Javascript
对vux点击事件的优化详解
2018/08/28 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
2020/09/10 Javascript
[41:08]TNC vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python 时间处理datetime实例
2008/09/06 Python
python中django框架通过正则搜索页面上email地址的方法
2015/03/21 Python
Python装饰器入门学习教程(九步学习)
2016/01/28 Python
python操作redis方法总结
2018/06/06 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
python程序快速缩进多行代码方法总结
2019/06/23 Python
python爬虫实现中英翻译词典
2019/06/25 Python
全面介绍python中很常用的单元测试框架unitest
2020/12/14 Python
python中xlrd模块的使用详解
2021/02/01 Python
菲律宾购物网站:Lazada菲律宾
2018/04/05 全球购物
建筑工程毕业生自我鉴定
2014/01/14 职场文书
中学校庆方案
2014/03/17 职场文书
中学生家长评语大全
2014/04/16 职场文书
理发店策划方案
2014/06/05 职场文书
弘扬焦裕禄精神走群众路线思想汇报
2014/09/12 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
机关作风整顿个人剖析材料
2014/10/06 职场文书
毕业生自荐材料范文
2014/12/30 职场文书
亚布力滑雪场导游词
2015/02/09 职场文书
婚礼答谢词范文
2015/09/29 职场文书
windows下快速安装nginx并配置开机自启动的方法
2021/05/11 Servers