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来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
Jan 21 Javascript
javascript 另一种图片滚动切换效果思路
Apr 20 Javascript
javascript中hasOwnProperty() 方法使用指南
Mar 09 Javascript
使用AngularJS制作一个简单的RSS阅读器的教程
Jun 18 Javascript
jQuery简单实现验证邮箱格式
Jul 15 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
Jul 09 Javascript
vue实现简单实时汇率计算功能
Jan 15 Javascript
关于angular js_$watch监控属性和对象详解
Apr 24 Javascript
深入探究AngularJs之$scope对象(作用域)
Jul 20 Javascript
从零开始搭建一个react项目开发
Feb 09 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
Sep 19 Javascript
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 Vue.js
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
3.从实例开始
2006/10/09 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
2015/02/15 PHP
php实现字符串反转输出的方法
2015/03/14 PHP
PHP从数组中删除元素的四种方法实例
2017/05/12 PHP
Egret引擎开发指南之发布项目
2014/09/03 Javascript
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
2017/06/12 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
2017/06/26 Javascript
React-Native使用Mobx实现购物车功能
2017/09/14 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
2017/10/17 Javascript
Angular如何在应用初始化时运行代码详解
2018/06/11 Javascript
浅谈react性能优化的方法
2018/09/05 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
JavaScript实现下拉列表
2021/01/20 Javascript
Python线程中对join方法的运用的教程
2015/04/09 Python
python实现linux下使用xcopy的方法
2015/06/28 Python
使用Python读取安卓手机的屏幕分辨率方法
2018/03/31 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
2020/06/24 Python
SmartBuyGlasses台湾:名牌眼镜,名牌太阳眼镜及隐形眼镜
2017/01/04 全球购物
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
What is EJB
2016/07/22 面试题
日语专业个人的求职信
2013/12/03 职场文书
幼儿教育感言
2014/02/05 职场文书
文明风采获奖感言
2014/02/18 职场文书
志愿者服务活动总结报告
2015/05/06 职场文书
礼貌问候语大全
2015/11/10 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript
redis 查看所有的key方式
2021/05/07 Redis
Vue和Flask通信的实现
2021/05/19 Vue.js
MySQL连表查询分组去重的实现示例
2021/07/01 MySQL
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫