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 相关文章推荐
js实现iPhone界面风格的单选框和复选框按钮实例
Aug 18 Javascript
纯CSS3代码实现滑动开关效果
Aug 19 Javascript
如何在JS中实现相互转换XML和JSON
Jul 19 Javascript
JS正则子匹配实例分析
Dec 22 Javascript
JavaScript数据结构之二叉树的查找算法示例
Apr 13 Javascript
微信小程序之数据双向绑定与数据操作
May 12 Javascript
vue中如何实现变量和字符串拼接
Jun 19 Javascript
underscore之function_动力节点Java学院整理
Jul 11 Javascript
vue 使用自定义指令实现表单校验的方法
Aug 28 Javascript
js实现图片跟随鼠标移动效果
Oct 16 Javascript
使用Vue 自定义文件选择器组件的实例代码
Mar 04 Javascript
详解JavaScript 的执行机制
Sep 18 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计算两个路径的相对路径
2013/06/14 PHP
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
一个简单的弹性返回顶部JS代码实现介绍
2013/06/09 Javascript
js判断url是否有效的两种方法
2014/03/04 Javascript
jQuery实现鼠标经过图片预览大图效果
2014/04/10 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
基于jQuery实现文本框缩放以及上下移动功能
2014/11/24 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
2017/04/17 jQuery
JS简单判断字符在另一个字符串中出现次数的2种常用方法
2017/04/20 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
bootstrap+jquery项目引入文件报错的解决方法
2018/01/22 jQuery
vue的常用组件操作方法应用分析
2018/04/13 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
新手快速入门JavaScript装饰者模式与AOP
2019/06/24 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
[49:07]VGJ.T vs Optic Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
Python实现基于权重的随机数2种方法
2015/04/28 Python
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
python读写文件write和flush的实现方式
2020/02/21 Python
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
教你打造完美的创业计划书
2014/01/06 职场文书
中学教师培训制度
2014/01/31 职场文书
理想点亮人生演讲稿
2014/05/21 职场文书
学校校庆演讲稿
2014/05/22 职场文书
党的群众教育实践活动实施方案
2014/06/12 职场文书
私用公车造成事故检讨书
2014/11/16 职场文书
小程序实现悬浮按钮的全过程记录
2021/10/16 HTML / CSS
Go gRPC进阶教程gRPC转换HTTP
2022/06/16 Golang