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 相关文章推荐
如何判断元素是否为HTMLElement元素
Dec 06 Javascript
js动态改变select选择变更option的index值示例
Jul 10 Javascript
深入剖析JavaScript编程中的对象概念
Oct 21 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
Jan 27 Javascript
JS封装的选项卡TAB切换效果示例
Sep 20 Javascript
解决vue单页路由跳转后scrollTop的问题
Sep 03 Javascript
什么时候不能在 Node.js 中使用 Lock Files
Jun 24 Javascript
js实现橱窗展示效果
Jan 11 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
Feb 06 Javascript
Node.js fs模块原理及常见用途
Oct 22 Javascript
vue实现顶部菜单栏
Nov 08 Javascript
小程序自定义轮播图圆点组件
Jun 25 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中的Class的几点个人看法
2006/10/09 PHP
php笔记之常用文件操作
2010/10/12 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
2016/01/09 PHP
laravel 模型查询按照whereIn排序的示例
2019/10/16 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
Javascript this 的一些学习总结
2012/08/31 Javascript
JavaScript导出Excel实例详解
2014/11/25 Javascript
javascript中checkbox使用方法简单实例演示
2015/11/17 Javascript
AngularJs  Using $location详解及示例代码
2016/09/02 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
2019/01/04 Javascript
详解一个基于套接字实现长连接的express
2019/03/28 Javascript
微信小程序和H5页面间相互跳转代码实例
2019/09/19 Javascript
vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法
2019/11/05 Javascript
通过javascript实现扫雷游戏代码实例
2020/02/09 Javascript
JavaScript监听一个DOM元素大小变化
2020/04/26 Javascript
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
Python的ORM框架中SQLAlchemy库的查询操作的教程
2015/04/25 Python
浅谈python对象数据的读写权限
2016/09/12 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
python xpath获取页面注释的方法
2019/01/14 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
Hotels.com泰国:酒店预订网站
2019/11/20 全球购物
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
char型变量中能不能存贮一个中文汉字
2015/07/08 面试题
股份转让协议书
2014/04/12 职场文书
初三新学期计划书
2014/05/03 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
上课说话检讨书500字
2014/11/01 职场文书
滴水洞导游词
2015/02/10 职场文书
2016开学第一课心得体会
2016/01/23 职场文书
阿里云 Windows server 2019 配置FTP
2022/04/28 Servers