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 相关文章推荐
jquery与google map api结合使用 控件,监听器
Mar 04 Javascript
js中的hasOwnProperty和isPrototypeOf方法使用实例
Jun 06 Javascript
jquery获取radio值(单选组radio)
Oct 16 Javascript
JS实现输入框提示文字点击时消失效果
Jul 19 Javascript
jQuery实现边框动态效果的实例代码
Sep 23 Javascript
AngularJs表单验证实例代码解析
Nov 29 Javascript
angularjs指令之绑定策略(@、=、&amp;)
Apr 13 Javascript
Node.js搭建小程序后台服务
Jan 03 Javascript
详解webpack-dev-server使用方法
Sep 14 Javascript
写一个Vue Popup组件
Feb 25 Javascript
如何实现小程序tab栏下划线动画效果
May 18 Javascript
JavaScript日期库date-fn.js使用方法解析
Sep 09 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
第十四节--命名空间
2006/11/16 PHP
php 异常处理实现代码
2009/03/10 PHP
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
JavaScript数组对象赋值用法实例
2015/08/04 Javascript
如何实现移动端浏览器不显示 pc 端的广告
2015/10/15 Javascript
Javascript的表单验证-揭开正则表达式的面纱
2016/03/18 Javascript
AngularJs 60分钟入门基础教程
2016/04/03 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
Angular.js 4.x中表单Template-Driven Forms详解
2017/04/25 Javascript
VUE 使用中踩过的坑
2018/02/08 Javascript
vue-cli脚手架-bulid下的配置文件
2018/03/27 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
JS实现公告上线滚动效果
2021/01/10 Javascript
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
[00:33]2016完美“圣”典风云人物:BurNIng宣传片
2016/12/10 DOTA
Python中类的继承代码实例
2014/10/28 Python
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
python 同时运行多个程序的实例
2019/01/07 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
python如何读取bin文件并下发串口
2019/07/05 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
2020/04/08 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
python多线程爬取西刺代理的示例代码
2021/01/30 Python
CSS3之背景尺寸Background-size使用介绍
2013/10/14 HTML / CSS
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
HTML5输入框下拉菜单功能的示例代码
2020/09/08 HTML / CSS
银河香水:Galaxy Perfume
2019/03/25 全球购物
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
竟聘演讲稿范文
2013/12/31 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
说明书怎么写
2014/05/06 职场文书
安全生产年活动总结
2014/08/29 职场文书
法人身份证明书
2014/10/08 职场文书
小学体育队列队形教学反思
2016/02/16 职场文书
python缺失值的解决方法总结
2021/06/09 Python
HTML基本元素标签介绍
2022/02/28 HTML / CSS