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 20 Javascript
javascript自然分类法算法实现代码
Oct 11 Javascript
表格奇偶行设置不同颜色的核心JS代码
Dec 24 Javascript
js网页实时倒计时精确到秒级
Feb 10 Javascript
JavaScript对IE操作的经典代码(推荐)
Mar 10 Javascript
Bootstrap每天必学之表格
Nov 23 Javascript
最简单的tab切换实例代码
May 13 Javascript
Document.body.scrollTop的值总为零的快速解决办法
Jun 09 Javascript
webpack实现热更新(实施同步刷新)
Jul 28 Javascript
js 实现ajax发送步骤过程详解
Jul 25 Javascript
vue请求数据的三种方式
Mar 04 Javascript
Vue中使用import进行路由懒加载的原理分析
Apr 01 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中AES加密解密的例子小结
2014/02/18 PHP
Yii2中如何使用modal弹窗(基本使用)
2016/05/30 PHP
php 在字符串指定位置插入新字符的简单实现
2016/06/28 PHP
php版微信小店调用api示例代码
2016/11/12 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
jQuery的初始化与对象构建之浅析
2011/04/12 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
Bootstrap每天必学之导航组件
2016/04/25 Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
2016/10/29 Javascript
canvas简单快速的实现知乎登录页背景效果
2017/05/08 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
JavaScript屏蔽Backspace键的实现代码
2017/11/02 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
2017/11/09 Javascript
vue2中的keep-alive使用总结及注意事项
2017/12/21 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
如何基于viewport vm适配移动端页面
2020/11/13 Javascript
使用PyV8在Python爬虫中执行js代码
2017/02/16 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
TensorFlow实现随机训练和批量训练的方法
2018/04/28 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
Django之choices选项和富文本编辑器的使用详解
2020/04/01 Python
python实现处理mysql结果输出方式
2020/04/09 Python
HTML页面中添加Canvas标签示例
2015/01/01 HTML / CSS
HTML5 背景的显示区域实现
2020/07/09 HTML / CSS
新西兰领先的鞋类和靴子网上商城:Merchant 1948
2017/09/08 全球购物
理肤泉加拿大官网:La Roche-Posay加拿大
2018/07/06 全球购物
C语言编程题
2015/03/09 面试题
幼儿园毕业教师感言
2014/02/21 职场文书
代理协议书范本
2014/04/22 职场文书
2014年村委会工作总结
2014/11/24 职场文书
2015幼儿园新学期寄语
2015/02/27 职场文书
出国留学英文自荐信
2015/03/25 职场文书
springboot中rabbitmq实现消息可靠性机制详解
2021/09/25 Java/Android
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers