基于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 相关文章推荐
google地图的路线实现代码
Aug 20 Javascript
js去空格技巧分别去字符串前后、左右空格
Oct 21 Javascript
jquery Tab效果和动态加载的简单实例
Dec 11 Javascript
JS实现从表格中动态删除指定行的方法
Mar 31 Javascript
超实用的JavaScript表单代码段
Feb 26 Javascript
Javascript的表单与验证-非空验证
Mar 18 Javascript
微信小程序 教程之事件
Oct 18 Javascript
JS实现全屏的四种写法
Dec 30 Javascript
vue移动端实现下拉刷新
Apr 22 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
Oct 16 Javascript
Vue组件间数据传递的方式(3种)
Jul 13 Javascript
JavaScript实现班级抽签小程序
May 19 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/11/16 PHP
无需重新编译php加入ftp扩展的解决方法
2013/02/07 PHP
str_replace只替换一次字符串的方法
2013/04/09 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
JS BASE64编码 window.atob(), window.btoa()
2021/03/09 Javascript
js中的string.format函数代码
2020/08/11 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
2015/06/18 Javascript
Node.js检测端口(port)是否被占用的简单示例
2016/09/29 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
angularjs实现猜大小功能
2017/10/23 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
layui点击按钮添加可编辑的一行方法
2018/08/15 Javascript
python 中文乱码问题深入分析
2011/03/13 Python
Python中的zipfile模块使用详解
2015/06/25 Python
使用Python3编写抓取网页和只抓网页图片的脚本
2015/08/20 Python
详解python的几种标准输出重定向方式
2016/08/15 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
2020/04/27 Python
解决python执行较大excel文件openpyxl慢问题
2020/05/15 Python
如何理解Python中包的引入
2020/05/29 Python
Python之字典对象的几种创建方法
2020/09/30 Python
详解CSS3中border-image的使用
2015/07/18 HTML / CSS
HTML5 localStorage使用总结
2017/02/22 HTML / CSS
KIKO美国官网:意大利的平价彩妆品牌
2017/05/16 全球购物
财务总经理岗位职责
2014/02/16 职场文书
产品包装策划方案
2014/05/18 职场文书
大学奖学金获奖感言
2014/08/15 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
2014年电厂个人工作总结
2014/11/27 职场文书
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS
Redis RDB技术底层原理详解
2021/09/04 Redis