基于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 相关文章推荐
Jquery 组合form元素为json格式,asp.net反序列化
Jul 09 Javascript
通过判断JavaScript的版本实现执行不同的代码
May 11 Javascript
js中格式化日期时间型数据函数代码
Nov 08 Javascript
Jquery动态更改一张位图的src与Attr的使用
Jul 31 Javascript
jquery ajax 简单范例(界面+后台)
Nov 19 Javascript
js换图片效果可进行定时操作
Jun 09 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
Dec 18 Javascript
JavaScript基于setTimeout实现计数的方法
May 08 Javascript
jQuery仿gmail实现fixed布局的方法
May 27 Javascript
AngularJS中下拉框的基本用法示例
Oct 11 Javascript
vue和小程序项目中使用iconfont的方法
May 19 Javascript
jQuery 移除事件的方法
Jun 20 jQuery
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编程效率的方法
2013/11/07 PHP
PHP采集类Snoopy抓取图片实例
2014/06/19 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
2014/12/15 PHP
[原创]php获取数组中键值最大数组项的索引值
2015/03/17 PHP
PHP pear安装配置教程
2016/05/14 PHP
php获取当前url地址的方法小结
2017/01/10 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
二级域名转向类
2006/11/09 Javascript
JavaScript 字符串处理函数使用小结
2010/12/02 Javascript
javascript实现的DES加密示例
2013/10/30 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
Vue.js第四天学习笔记
2016/12/02 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
2017/09/22 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
2017/11/29 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
vue图片上传组件使用详解
2019/12/23 Javascript
微信小程序实现时间戳格式转换
2020/07/20 Javascript
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
Python 代码性能优化技巧分享
2012/08/07 Python
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
python使用PyQt5的简单方法
2019/02/27 Python
打包PyQt5应用时的注意事项
2020/02/14 Python
美国一家运动专业鞋类零售商:Warehouse Shoe Sale(WSS)
2018/03/28 全球购物
专营店会计助理岗位职责
2013/11/29 职场文书
初中同学聚会感言
2014/02/11 职场文书
竞选劳动委员演讲稿
2014/04/28 职场文书
小学开学标语
2014/07/01 职场文书
同学聚会邀请函
2015/01/30 职场文书
2016高考感言
2015/08/01 职场文书
MySQL 使用SQL语句修改表名的实现
2021/04/07 MySQL
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL