JavaScript实现动画打开半透明提示层的方法


Posted in Javascript onApril 21, 2015

本文实例讲述了JavaScript实现动画打开半透明提示层的方法。分享给大家供大家参考。具体如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>DOM半透明提示层</title>
<style type="text/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;
}
.content{
padding:10px;
}
</style>
</head>
<body>
<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>
<script type="text/javascript">
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;
}
}
</script><br/>
<div>https://3water.com/</div>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
运用jquery实现table单双行不同显示并能单行选中
Jul 25 Javascript
一些经常会用到的Javascript检测函数
May 31 Javascript
js清理Word格式示例代码
Feb 13 Javascript
jQuery中odd选择器的定义和用法
Dec 23 Javascript
浅谈JavaScript中运算符的优先级
Jul 07 Javascript
Highcharts入门之基本属性
Aug 02 Javascript
AngularJS实现一次监听多个值发生的变化
Aug 31 Javascript
深入理解Node.js中的进程管理
Mar 13 Javascript
jQuery查找dom的几种方法效率详解
May 17 jQuery
vuex+axios+element-ui实现页面请求loading操作示例
Feb 02 Javascript
详解vue 组件注册
Nov 20 Vue.js
vue修饰符.capture和.self的区别
Apr 22 Vue.js
javascript格式化指定日期对象的方法
Apr 21 #Javascript
jQuery固定元素插件scrolltofixed使用指南
Apr 21 #Javascript
javascript判断数组内是否重复的方法
Apr 21 #Javascript
jQuery菜单插件superfish使用指南
Apr 21 #Javascript
javascript实现通过表格绘制颜色填充矩形的方法
Apr 21 #Javascript
jQuery标签编辑插件Tagit使用指南
Apr 21 #Javascript
jQuery背景插件backstretch使用指南
Apr 21 #Javascript
You might like
PHP多进程之pcntl_fork的实例详解
2017/10/15 PHP
javascript函数库-集合框架
2007/04/27 Javascript
Javascript的并行运算实现代码
2010/11/19 Javascript
javascript 单例/单体模式(Singleton)
2011/04/07 Javascript
Javascript学习笔记-详解in运算符
2011/09/13 Javascript
js函数调用的方式
2014/05/06 Javascript
js中将String转换为number以便比较
2014/07/08 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
javascript实现切换td中的值
2014/12/05 Javascript
javascript异步编程代码书写规范Promise学习笔记
2015/02/11 Javascript
jQuery前端开发35个小技巧
2016/05/24 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
2016/09/18 Javascript
Bootstrap模态框禁用空白处点击关闭
2016/10/20 Javascript
微信小程序 基础组件与导航组件详细介绍
2017/02/21 Javascript
Vue 框架之键盘事件、健值修饰符、双向数据绑定
2018/11/14 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
JS+DIV实现拖动效果
2020/02/11 Javascript
基于javascript实现日历功能原理及代码实例
2020/05/07 Javascript
python encode和decode的妙用
2009/09/02 Python
Python(Django)项目与Apache的管理交互的方法
2018/05/16 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
python+opencv实现阈值分割
2018/12/26 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
Lombok插件安装(IDEA)及配置jar包使用详解
2020/11/04 Python
CSS3实现swap交换动画
2016/01/19 HTML / CSS
html5中的input新属性range使用记录
2014/09/05 HTML / CSS
学校出纳员岗位职责
2014/03/18 职场文书
三好学生演讲稿范文
2014/04/26 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
工作后的感想
2015/08/07 职场文书
Nginx工作原理和优化总结。
2021/04/02 Servers
HTML5来实现本地文件读取和写入的实现方法
2021/05/25 HTML / CSS
MySQL系列之十四 MySQL的高可用实现
2021/07/02 MySQL
python多次执行绘制条形图
2022/04/20 Python