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 相关文章推荐
WordPress JQuery处理沙发头像
Jun 22 Javascript
JS 毫秒转时间示例代码
Sep 22 Javascript
Javascript 按位取反运算符 (~)
Feb 04 Javascript
JavaScript图像延迟加载库Echo.js
Apr 05 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
Jul 12 jQuery
阿里大于短信验证码node koa2的实现代码(最新)
Sep 07 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
Dec 08 Javascript
vue 项目如何引入微信sdk接口的方法
Dec 18 Javascript
微信小程序Flex布局用法深入浅出分析
Apr 25 Javascript
JS实现指定区域的全屏显示功能示例
Apr 25 Javascript
javascript实现超好看的3D烟花特效
Jan 01 Javascript
vue使用节流函数的踩坑实例指南
May 20 Vue.js
解析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获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
javascript 原型模式实现OOP的再研究
2009/04/09 Javascript
jQuery 解析xml文件
2009/08/09 Javascript
javascript css styleFloat和cssFloat
2010/03/15 Javascript
分享一个asp.net pager分页控件
2012/01/04 Javascript
解决jquery异步按一定的时间间隔刷新问题
2012/12/10 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
2016/05/16 Javascript
jQuery表单验证简单示例
2016/10/17 Javascript
微信小程序 WebSocket详解及应用
2017/01/21 Javascript
Ajax和Comet技术总结
2017/02/19 Javascript
vue.js中created方法作用
2018/03/30 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
JS/jQuery实现简单的开关灯效果【案例】
2019/02/19 jQuery
详解bootstrap-fileinput文件上传控件的亲身实践
2019/03/21 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
[01:17:47]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python+OpenCV实现车牌字符分割和识别
2018/03/31 Python
Python针对给定列表中元素进行翻转操作的方法分析
2018/04/27 Python
python自动化之Ansible的安装教程
2019/06/13 Python
pandas 数据结构之Series的使用方法
2019/06/21 Python
Python制作简易版小工具之计算天数的实现思路
2020/02/13 Python
如何理解Python中的变量
2020/06/01 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
2020/06/28 Python
HTML5 本地存储和内容按需加载的思路和方法
2011/04/07 HTML / CSS
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
美国购买舞会礼服网站:Couture Candy
2019/12/29 全球购物
Skechers越南官方网站:来自美国的运动休闲品牌
2021/02/22 全球购物
班班通校本培训方案
2014/03/12 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
平面设计师岗位职责
2014/09/18 职场文书
2019银行竞聘书
2019/06/21 职场文书
Pygame Rect区域位置的使用(图文)
2021/11/17 Python
MySQL 数据库范式化设计理论
2022/04/22 MySQL