基于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 相关文章推荐
JS启动应用程序的一个简单例子
May 11 Javascript
parseInt parseFloat js字符串转换数字
Aug 01 Javascript
JavaScript中的bold()方法使用详解
Jun 08 Javascript
jQuery图片轮播滚动切换代码分享
Apr 20 Javascript
jQuery实现调整表格单列顺序完整实例
Jun 20 Javascript
14 个折磨人的 JavaScript 面试题
Aug 08 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
Oct 26 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
Jul 15 Javascript
详解angularjs实现echart图表效果最简洁教程
Nov 29 Javascript
讲解vue-router之命名路由和命名视图
May 28 Javascript
微信小程序日期选择器实例代码
Jul 18 Javascript
js的继承方法小结(prototype、call、apply)(推荐)
Apr 17 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 变量类型的强制转换
2009/10/23 PHP
php设计模式 Delegation(委托模式)
2011/06/26 PHP
win7安装php框架Yii的方法
2016/01/25 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
2017/07/27 PHP
moment.js轻松实现获取当前日期是当年的第几周
2015/02/05 Javascript
jQuery判断一个元素是否可见的方法
2015/06/05 Javascript
如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)
2016/02/23 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
JavaScript闭包的简单应用
2017/09/01 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
vue.js购物车添加商品组件的方法
2019/09/17 Javascript
Node对CommonJS的模块规范
2019/11/06 Javascript
JavaScript或jQuery 获取option value值方法解析
2020/05/12 jQuery
vue配置多代理服务接口地址操作
2020/09/08 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
2020/11/10 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
Python版微信红包分配算法
2015/05/04 Python
Python 判断奇数偶数的方法
2018/12/20 Python
python3利用Socket实现通信的方法示例
2019/05/06 Python
Python K最近邻从原理到实现的方法
2019/08/15 Python
python实现图片插入文字
2019/11/26 Python
全球最大的游戏市场:G2A
2018/07/05 全球购物
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
大学生优秀的自我评价分享
2013/10/22 职场文书
十八届三中全会学习方案
2014/02/16 职场文书
护士岗位职责
2014/02/16 职场文书
经典的毕业生自荐信范文
2014/04/14 职场文书
5.12护士节演讲稿
2014/04/30 职场文书
消防志愿者活动方案
2014/08/23 职场文书
学习十八大演讲稿
2014/09/15 职场文书
初中作文评语
2014/12/25 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书