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 函数调用规则
Sep 14 Javascript
js实现动态改变字体大小代码
Jan 02 Javascript
js+div实现文字滚动和图片切换效果代码
Aug 27 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
Aug 08 Javascript
js实现微博发布小功能
Jan 12 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
Sep 18 Javascript
JS实现带动画的回到顶部效果
Dec 28 Javascript
Jquery和CSS实现选择框重置按钮功能
Nov 08 jQuery
Vue源码解析之数据响应系统的使用
Apr 24 Javascript
react实现同页面三级跳转路由布局
Sep 26 Javascript
Vue封装全局过滤器Filters的步骤
Sep 16 Javascript
详解JavaScript之Array.reduce源码解读
Nov 01 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
操作Oracle的php类
2006/10/09 PHP
PHP 5.0 Pear安装方法
2006/12/06 PHP
PHP中的integer类型使用分析
2010/07/27 PHP
php 获取页面中指定内容的实现类
2014/01/23 PHP
php array_pop 删除数组最后一个元素实例
2016/11/02 PHP
php 利用socket发送GET,POST请求的实例代码
2020/07/04 PHP
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
jquery 插件开发 extjs中的extend用法小结
2013/01/04 Javascript
6款经典实用的jQuery小插件及源码(对话框/提示工具等等)
2013/02/04 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
jQuery formValidator表单验证
2016/01/07 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
2016/06/03 Javascript
js实现固定宽高滑动轮播图效果
2017/01/13 Javascript
javascript 中Cookie读、写与删除操作
2017/03/29 Javascript
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
利用Angular.js编写公共提示模块的方法教程
2017/05/28 Javascript
详解Vue的computed(计算属性)使用实例之TodoList
2017/08/07 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
关于微信小程序bug记录与解决方法
2018/08/15 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
2018/08/24 Javascript
Node.js中文件系统fs模块的使用及常用接口
2020/03/06 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
Python enumerate遍历数组示例应用
2008/09/06 Python
python中引用与复制用法实例分析
2015/06/04 Python
python中print的不换行即时输出的快速解决方法
2016/07/20 Python
python中nan与inf转为特定数字方法示例
2017/05/11 Python
Python实现针对给定字符串寻找最长非重复子串的方法
2018/04/21 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
Python Process创建进程的2种方法详解
2021/01/25 Python
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
HTML5超炫酷粒子效果的进度条的实现示例
2019/08/23 HTML / CSS
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
什么是聚集索引和非聚集索引
2012/01/17 面试题
后勤部长岗位职责
2013/12/14 职场文书
疾病捐款倡议书
2014/05/13 职场文书
吃空饷专项整治方案
2014/10/27 职场文书