基于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 继承机制的实现
Aug 12 Javascript
JS+CSS实现Li列表隔行换色效果的方法
Feb 16 Javascript
jQuery实现首页顶部可伸缩广告特效代码
Apr 15 Javascript
基于zepto的移动端轻量级日期插件--date_picker
Mar 04 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
May 03 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
Jan 10 Javascript
微信小程序 devtool隐藏的秘密
Jan 21 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
Nov 03 Javascript
详解@angular/cli 改变默认启动端口两种方式
Nov 29 Javascript
vue-cli3 从搭建到优化的详细步骤
Jan 20 Javascript
基于layui实现高级搜索(筛选)功能
Jul 26 Javascript
vue data变量相互赋值后被实时同步的解决步骤
Aug 05 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
SONY ICF-SW07收音机电路分析
2021/03/02 无线电
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
php中get_defined_constants函数用法实例分析
2015/05/12 PHP
详解Yii实现分页的两种方法
2017/01/14 PHP
laravel5.1框架model类查询的实现方法
2019/10/08 PHP
PHP 计算两个时间段之间交集的天数示例
2019/10/24 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
Tab页界面 用jQuery及Ajax技术实现(php后台)
2011/10/12 Javascript
javascript中Number对象的toString()方法分析
2014/12/20 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
2015/03/05 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
jQuery弹出div层过2秒自动消失
2016/11/29 Javascript
input输入密码变黑点密文的实现方法
2017/01/09 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
JS闭包原理与应用经典示例
2018/12/20 Javascript
详解ES6 export default 和 import语句中的解构赋值
2019/05/28 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
Python程序设计入门(2)变量类型简介
2014/06/16 Python
python django 实现验证码的功能实例代码
2017/05/18 Python
Python栈算法的实现与简单应用示例
2017/11/01 Python
python编写朴素贝叶斯用于文本分类
2017/12/21 Python
简单了解python的内存管理机制
2019/07/08 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
Python 输出详细的异常信息(traceback)方式
2020/04/08 Python
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
米兰必去买手店排行榜首位:Antonioli
2016/09/11 全球购物
美味咖啡的顶级烘焙师:Cafe Britt
2018/03/15 全球购物
意大利灯具购物网站:Lampade.it
2018/10/18 全球购物
生日宴会主持词
2014/03/20 职场文书
2015年手术室工作总结
2015/05/11 职场文书
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技
Vue深入理解插槽slot的使用
2022/08/05 Vue.js