基于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 进阶篇2 CSS XML学习
Mar 14 Javascript
浅析JavaScript中的delete运算符
Nov 30 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
May 04 Javascript
Javascript中使用parseInt函数需要注意的问题
Apr 02 Javascript
Jquery判断form表单数据是否变化
Mar 30 Javascript
开启BootStrap学习之旅
May 04 Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
Dec 14 Javascript
详谈jQuery中使用attr(), prop(), val()获取value的异同
Apr 25 jQuery
Vue源码解析之数组变异的实现
Dec 04 Javascript
微信小程序中如何计算距离某个节日还有多少天
Jul 15 Javascript
基于JavaScript实现简单抽奖功能代码实例
Oct 20 Javascript
微信小程序实现天气预报功能(附源码)
Dec 10 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
一个简单的自动发送邮件系统(一)
2006/10/09 PHP
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
2016/03/23 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
PHP文件操作实例总结【文件上传、下载、分页】
2018/12/08 PHP
javascript 常用关键字列表集合
2007/12/04 Javascript
js修改table中Td的值(定义td的双击事件)
2013/01/10 Javascript
jquery实现的鼠标拖动排序Li或Table
2014/05/04 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
2017/01/17 Javascript
详解es6超好用的语法糖Decorator
2018/08/01 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
vue 实现路由跳转时更改页面title
2019/11/05 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
2020/11/03 Javascript
swiper实现导航滚动效果
2020/12/13 Javascript
Python判断Abundant Number的方法
2015/06/15 Python
解决安装python库时windows error5 报错的问题
2018/10/21 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
用python 实现在不确定行数情况下多行输入方法
2019/01/28 Python
Python大数据之从网页上爬取数据的方法详解
2019/11/16 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
Django多数据库配置及逆向生成model教程
2020/03/28 Python
python中逻辑与或(and、or)和按位与或异或(&amp;、|、^)区别
2020/08/05 Python
使用CSS3编写灰阶滤镜来制作黑白照片效果的方法
2016/05/09 HTML / CSS
利用HTML5的新特点实现图片文件异步上传
2014/05/29 HTML / CSS
Joules美国官网:出色的英国风格
2017/10/30 全球购物
.NET面试题:什么是值类型和引用类型
2016/01/12 面试题
学院书画协会部门职责
2013/11/28 职场文书
自我评价范文分享
2014/01/04 职场文书
普罗米修斯教学反思
2014/02/06 职场文书
高中生学期学习自我评价
2014/02/24 职场文书
家长通知书家长评语
2014/04/17 职场文书
销售业务员岗位职责
2015/02/13 职场文书
高中生社会实践心得体会
2016/01/14 职场文书