基于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分页
Jun 07 Javascript
js Flash插入函数免激活代码
Mar 31 Javascript
jQuery Ajax文件上传(php)
Jun 16 Javascript
利用JS实现浏览器的title闪烁
Jul 08 Javascript
关于JavaScript中name的意义冲突示例介绍
May 29 Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
Jun 20 Javascript
ionic隐藏tabs的方法
Aug 29 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
Dec 11 Javascript
vue中$nextTick的用法讲解
Jan 17 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
Apr 28 Javascript
JavaScript使用canvas绘制坐标和线
Apr 28 Javascript
JavaScript架构localStorage特殊场景下二次封装操作
Jun 21 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
mysql5写入和读出乱码解决
2006/11/25 PHP
php 特殊字符处理函数
2008/09/05 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
php表单转换textarea换行符的方法
2010/09/10 PHP
一个基于PDO的数据库操作类(新) 一个PDO事务实例
2011/07/03 PHP
sae使用smarty模板的方法
2013/12/17 PHP
php socket客户端及服务器端应用实例
2014/07/04 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
深入理解Javascript动态方法调用与参数修改的问题
2013/12/10 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
JS实现选项卡实例详解
2015/11/17 Javascript
Node.js重新刷新session过期时间的方法
2016/02/04 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
2016/02/12 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
Vue.js学习之计算属性
2017/01/22 Javascript
bootstrap weebox 支持ajax的模态弹出框
2017/02/23 Javascript
jQuery实现动态给table赋值的方法示例
2017/07/04 jQuery
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
解决vue中post方式提交数据后台无法接收的问题
2018/08/11 Javascript
[02:05]2014DOTA2西雅图邀请赛 专访啸天mik夫妻档
2014/07/08 DOTA
jupyter安装小结
2016/03/13 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
Python实现对文件进行单词划分并去重排序操作示例
2018/07/10 Python
django认证系统 Authentication使用详解
2019/07/22 Python
python mysql断开重连的实现方法
2019/07/26 Python
Django接收post前端返回的json格式数据代码实现
2019/07/31 Python
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
智能家居、吸尘器、滑板车、电动自行车网上购物:Geekmaxi
2021/01/18 全球购物
放飞梦想演讲稿
2014/05/05 职场文书
计算机毕业生求职信
2014/06/10 职场文书
酒店辞职书怎么写
2015/02/26 职场文书
项目验收申请报告
2015/05/15 职场文书
体育部部长竞选稿
2015/11/21 职场文书
python 实现的截屏工具
2021/05/08 Python
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery