JS打开层/关闭层/移动层动画效果的实例代码


Posted in Javascript onMay 11, 2013

css

body, span, div, td { font-size:12px; line-height:1.5em; color:#849BCA; }
#bodyL { float:left; width:84px; margin-right:2px; }
a.od { width:80px; height:25px; line-height:25px; text-align:center; font-weight:bold; border: 2px solid #849BCA; display:block; color:#547BC9; float:left; text-decoration:none; margin-top:2px; }
a.od:link { background:#EEF1F8; }
a.od:visited { background:#EEF1F8; }
a.od:hover { background:#EEE; }
a.od:active { background:#EEE; }
#fd { width:500px; height:200px; background:#EDF1F8; border: 2px solid #849BCA; margin-top:2px; margin-left:2px; float:left; overflow:hidden; position:absolute; left:0px; top:0px; cursor:move; float:left;/*filter:alpha(opacity=50);*/ }
.content { padding:10px; }

html
<div id="bodyL"> 
<a href="#" class="od" onclick = "show('fd');return false;"> [打开层] </a> 
<a href="#" class="od" onclick = "closeed('fd');return false;"> [关闭层] </a> 
</div>
<div id="fd" style="display:none;filter:alpha(opacity=100);opacity:1;">
  <div class="content">移动层</div>
</div>

jq
var prox;
var proy;
var proxc;
var proyc;
function show(id){/*--打开--*/
clearInterval(prox);
clearInterval(proy);
clearInterval(proxc);
clearInterval(proyc);
var o = document.getElementById(id);
o.style.display = "block";
o.style.width = "1px";
o.style.height = "1px"; 
prox = setInterval(function(){openx(o,500)},10);
}
function openx(o,x){/*--打开x--*/
var cx = parseInt(o.style.width);
if(cx < x)
{
o.style.width = (cx + Math.ceil((x-cx)/5)) +"px";
}
else
{
clearInterval(prox);
proy = setInterval(function(){openy(o,200)},10);
}
}
function openy(o,y){/*--打开y--*/
var cy = parseInt(o.style.height);
if(cy < y)
{
o.style.height = (cy + Math.ceil((y-cy)/5)) +"px";
}
else
{
clearInterval(proy);
}
}
function closeed(id){/*--关闭--*/
clearInterval(prox);
clearInterval(proy);
clearInterval(proxc);
clearInterval(proyc);
var o = document.getElementById(id);
if(o.style.display == "block")
{
proyc = setInterval(function(){closey(o)},10);
}
}
function closey(o){/*--打开y--*/
var cy = parseInt(o.style.height);
if(cy > 0)
{
o.style.height = (cy - Math.ceil(cy/5)) +"px";
}
else
{
clearInterval(proyc);
proxc = setInterval(function(){closex(o)},10);
}
}
function closex(o){/*--打开x--*/
var cx = parseInt(o.style.width);
if(cx > 0)
{
o.style.width = (cx - Math.ceil(cx/5)) +"px";
}
else
{
clearInterval(proxc);
o.style.display = "none";
}
}
/*-------------------------鼠标拖动---------------------*/
var od = document.getElementById("fd");
var dx,dy,mx,my,mouseD;
var odrag;
var isIE = document.all ? true : false;
document.onmousedown = function(e){
var e = e ? e : event;
if(e.button == (document.all ? 1 : 0))
{
mouseD = true;
}
}
document.onmouseup = function(){
mouseD = false;
odrag = "";
if(isIE)
{
od.releaseCapture();
od.filters.alpha.opacity = 100;
}
else
{
window.releaseEvents(od.MOUSEMOVE);
od.style.opacity = 1;
}
}
//function readyMove(e){
od.onmousedown = function(e){
odrag = this;
var e = e ? e : event;
if(e.button == (document.all ? 1 : 0))
{
mx = e.clientX;
my = e.clientY;
od.style.left = od.offsetLeft + "px";
od.style.top = od.offsetTop + "px";
if(isIE)
{
od.setCapture();
od.filters.alpha.opacity = 50;
}
else
{
window.captureEvents(Event.MOUSEMOVE);
od.style.opacity = 0.5;
}
//alert(mx);
//alert(my);
} 
}
document.onmousemove = function(e){
var e = e ? e : event;
//alert(mrx);
//alert(e.button);
if(mouseD==true && odrag)
{
var mrx = e.clientX - mx;
var mry = e.clientY - my;
od.style.left = parseInt(od.style.left) +mrx + "px";
od.style.top = parseInt(od.style.top) + mry + "px";
mx = e.clientX;
my = e.clientY;
}
}
Javascript 相关文章推荐
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
Sep 26 Javascript
jQuery文本框(input textare)事件绑定方法教程
Apr 24 Javascript
jQuery中parent()方法用法实例
Jan 07 Javascript
关于延迟加载JavaScript
May 05 Javascript
jQuery进行组件开发完整实例
Dec 15 Javascript
Bootstrap php制作动态分页标签
Dec 23 Javascript
详解vue.js之绑定class和style的示例代码
Aug 24 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
Aug 13 Javascript
微信小程序 Animation实现图片旋转动画示例
Aug 22 Javascript
小程序实现自定义导航栏适配完美版
Apr 02 Javascript
用js简单提供增删改查接口
May 12 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
Jun 03 Javascript
解析javascript 实用函数的使用详解
May 10 #Javascript
jQuery拖动图片删除示例
May 10 #Javascript
jquery 提交值不为空的元素示例代码
May 10 #Javascript
JQuery中SetTimeOut传参问题探讨
May 10 #Javascript
jQuery中读取json文件示例代码
May 10 #Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
May 10 #Javascript
javascript级联下拉列表实例代码(自写)
May 10 #Javascript
You might like
php 文件缓存函数
2011/10/08 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
PHP无限极分类函数的实现方法详解
2017/04/15 PHP
js的with语句使用方法
2007/09/21 Javascript
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
JavaScript中OnLoad几种使用方法
2012/12/15 Javascript
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
原生javaScript实现图片延时加载的方法
2014/12/22 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
vue中实现在外部调用methods的方法(推荐)
2018/02/08 Javascript
vue2.0父子组件间传递数据的方法
2018/08/16 Javascript
React降级配置及Ant Design配置详解
2018/12/27 Javascript
[01:10:49]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
用python 制作图片转pdf工具
2015/01/30 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
Python实现微信好友的数据分析
2019/12/16 Python
在python中实现求输出1-3+5-7+9-......101的和
2020/04/02 Python
python实现控制台输出彩色字体
2020/04/05 Python
Python3批量创建Crowd用户并分配组
2020/05/20 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
美国在线购买空气净化器、除湿器、加湿器网站:AllergyBuyersClub
2021/03/16 全球购物
路政管理专业推荐信
2013/11/11 职场文书
西安交大自主招生自荐信
2014/01/27 职场文书
请假条的格式
2014/04/11 职场文书
《社戏》教学反思
2014/04/15 职场文书
经营理念标语
2014/06/21 职场文书
服务宗旨标语
2014/07/01 职场文书
小学班主任事迹材料
2014/12/17 职场文书
安全员岗位职责范本
2015/04/11 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书