基于JavaScript实现弹出框效果


Posted in Javascript onFebruary 19, 2016

弹出框在网站页面中是必不可少的一部分,今天借助三水点靠木平台给大家分享使用js实现简单的弹出框效果,本文写不好,还请见谅!

基于JavaScript实现弹出框效果 

首先我们来分析弹出框的部件.简单弹出框分为头,内容,尾部. 头部中有标题和关闭按钮,内容就可以图文,媒体,iframe,flash等等,尾部就是按钮(确认,取消等等),这个例子尾部我就不加入按钮了,这个例子主要是实现弹出框的核心部分.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
body, div{
padding: 0;
margin: 0;
}
html, body {
width: 100%;
height: 100%;
}
a {
text-decoration: none;
}
.pop {
border-radius: 5px;
background-color: #fff;
border: #eee 1px solid;
position: absolute;
width: 350px;
left: 35%;
top: 25%;
}
.pop-title {
background-image: linear-gradient(#eee,#efefef);
position: relative;
cursor: pointer;
}
.pop-title h3,.pop-title a{
display: inline-block;
}
.pop-title h3{
font-size: 14px;
margin: 0;
padding: 5px;
}
.pop-title a {
position: absolute;
top: 5px;
right: 5px;
}
.pop-content {
padding: 10px;
}
</style>
</head>
<body>
<div>
<div>
<h3>消息</h3>
<a href="javascript:;">X</a>
</div>
<div>
弹出框已显示
</div>
<div></div>
</div>
</body>
</html>

弹出框,在头部按下的时候,开启移动模式,在头部松开的时候就禁止移动.其实就这么一句的意思. 当然逻辑也是比较简单的.

这里我们就可能想到了几个变量,移动的X,Y坐标,移动的开关和禁止. 然后就是给title加入onmousedown 和 onmouseup事件.

onmousedown事件中主要是开启移动.

onmouseup 事件中逻辑主要是关闭移动,禁止移动弹出框.

接着需要移动,而移动需要时在某个范围内移动.这里我们是在body里面移动. 所以给body加入onmousemove事件. 这里面做的事情就是移动弹出框的位置处理.

在这三个事件中主要是配合了CSS中的position属性和JS中的Event事件中的属性的坐标.

var pop = document.getElementsByClassName("pop")[0];
var pop_title = pop.getElementsByClassName("pop-title")[0];
var bd = document.body;
var x = 0;
var y = 0;
var ismove = false; // 是否开启移动
var downx = 30;
var downy = 30;
pop_title.onmousedown = function (e) {
x = e.pageX;
y = e.pageY;
downx = e.offsetX;
downy = e.offsetY;
ismove = true;
}
bd.onmousemove = function (e) {
if (ismove) {
var cx = e.pageX - downx;
var cy = e.pageY - downy;
pop.style.left = cx + "px";
pop.style.top = cy + "px";
x = e.x;
y = e.y;
}
e.preventDefault();
}
pop_title.onmouseup = function (e) {
x = e.pageX;
y = e.pageY;
ismove = false;
console.log("移动完成")
}

移动弹出框完成后,我们给关闭按钮加入关闭事件.

//关闭 
var pop_close = pop.getElementsByClassName("pop-close")[0];
pop_close.onclick = function () {
pop.parentNode.removeChild(pop);
}

好了,简单的弹出框就实现了.同样代码自己可以优化封装,加入其它的功能.兼容性问题可能需要自己去处理一下(IE9以前的版本).

基于JavaScript实现弹出框效果 

js实现弹出框效果就给大家介绍这么多,希望对大家有所帮助!

Javascript 相关文章推荐
使javascript也能包含文件
Oct 26 Javascript
Add Formatted Text to a Word Document
Jun 15 Javascript
jquery 常用操作整理 基础入门篇
Oct 14 Javascript
web页面数据展示新想法(json)
Jun 08 Javascript
jQuery插件实现图片轮播特效
Jun 16 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
Feb 03 Javascript
详解AngularJS 模块化
Jun 14 Javascript
jQury Ajax使用Token验证身份实例代码
Sep 22 Javascript
layer弹出层父子页面事件相互调用方法
Aug 17 Javascript
使用RN Animated做一个“添加购物车”动画的方法
Sep 12 Javascript
微信小程序实现人脸识别登陆的示例代码
Apr 02 Javascript
详解es6新增数组方法简便了哪些操作
May 09 Javascript
jQuery on()绑定动态元素出现的问题小结
Feb 19 #Javascript
学习javascript文件加载优化
Feb 19 #Javascript
初识angular框架后的所思所想
Feb 19 #Javascript
复杂的javascript窗口分帧解析
Feb 19 #Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
Feb 19 #Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
Feb 19 #Javascript
谈一谈javascript中继承的多种方式
Feb 19 #Javascript
You might like
用PHP实现小写金额转换大写金额的代码(精确到分)
2012/01/10 PHP
php一次性删除前台checkbox多选内容的方法
2013/09/22 PHP
php中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
PHP addAttribute()函数讲解
2019/02/03 PHP
通过PHP设置BugFree获取邮箱通知
2019/04/25 PHP
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
Jquery下的26个实用小技巧(jQuery tips, tricks &amp; solutions)
2010/03/01 Javascript
妙用Jquery的val()方法
2012/06/27 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
2014/02/07 Javascript
js实现ArrayList功能附实例代码
2014/10/29 Javascript
一个php+js实时显示时间问题
2015/10/12 Javascript
jQuery中的siblings用法实例分析
2015/12/24 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
Vue自定义组件双向绑定实现原理及方法详解
2020/09/03 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
python函数参数*args**kwargs用法实例
2013/12/04 Python
web.py获取上传文件名的正确方法
2014/08/26 Python
同时安装Python2 &amp; Python3 cmd下版本自由选择的方法
2017/12/09 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
2018/07/18 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
对django views中 request, response的常用操作详解
2019/07/17 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
keras load model时出现Missing Layer错误的解决方式
2020/06/11 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
运动会入场词60字
2014/02/15 职场文书
离职证明标准格式
2014/09/15 职场文书
高中运动会广播稿
2014/09/16 职场文书
电影红河谷观后感
2015/06/11 职场文书
pycharm2021激活码使用教程(永久激活亲测可用)
2021/03/30 Python
PostgreSQL出现死锁该如何解决
2022/05/30 PostgreSQL