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的index方法实现tab效果
Feb 16 Javascript
IE6下opacity与JQuery的奇妙结合
Mar 01 Javascript
Javascript控制div属性动态变化实例分析
Oct 08 Javascript
图解JavaScript中的this关键字
May 28 Javascript
Angular企业级开发——MVC之控制器详解
Feb 20 Javascript
jQuery Ajax前后端使用JSON进行交互示例
Mar 17 Javascript
Angular2搜索和重置按钮过场动画
May 24 Javascript
浅谈angular4实际项目搭建总结
Dec 01 Javascript
详解vue 图片上传功能
Apr 30 Javascript
详解js常用分割取字符串的方法
May 15 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
Jul 30 Javascript
vue 公共列表选择组件,引用Vant-UI的样式方式
Nov 02 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
千呼万唤始出来,DOTA2勇士令状不朽宝藏Ⅱ现已推出
2020/08/25 DOTA
第七节--类的静态成员
2006/11/16 PHP
使用PHP实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
2011/10/09 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
2016/08/01 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
2017/06/21 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
javascript Array.remove() 数组删除
2009/08/06 Javascript
javascript getElementsByTagName
2011/01/31 Javascript
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
javascript结合canvas实现图片旋转效果
2015/05/03 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
jQuery焦点图轮播效果实现方法
2016/12/19 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
微信小程序与webview交互实现支付功能
2019/06/07 Javascript
[02:29]完美世界高校联赛上海赛区回顾
2015/12/15 DOTA
python通过百度地图API获取某地址的经纬度详解
2018/01/28 Python
Python获取Redis所有Key以及内容的方法
2019/02/19 Python
python3对接mysql数据库实例详解
2019/04/30 Python
Python3安装pip工具的详细步骤
2019/10/14 Python
在echarts中图例legend和坐标系grid实现左右布局实例
2020/05/16 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
Matplotlib animation模块实现动态图
2021/02/25 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
质检的岗位职责
2013/11/17 职场文书
如何写一封打动人心的求职信
2014/02/17 职场文书
开学典礼主持词
2014/03/19 职场文书
校庆筹备方案
2014/03/30 职场文书
学校清洁工岗位职责
2015/04/15 职场文书
交通安全温馨提示语
2015/07/14 职场文书
特种设备安全管理制度
2015/08/06 职场文书
导游词之徐州云龙湖
2019/11/19 职场文书