基于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 操作cookies及正确使用cookies的属性
Oct 15 Javascript
了不起的node.js读书笔记之mongodb数据库交互
Dec 22 Javascript
Javascript URI 解析介绍
Mar 15 Javascript
纯JS实现本地图片预览的方法
Jul 31 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
Dec 04 Javascript
详解javascript new的运行机制
Jan 26 Javascript
jQuery实现的简单拖拽功能示例
Sep 13 Javascript
Vue.js父与子组件之间传参示例
Feb 28 Javascript
bootstrap响应式表格实例详解
May 15 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
Jun 02 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
Jul 07 Javascript
Javascript 解构赋值详情
Nov 17 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
基于mysql的bbs设计(四)
2006/10/09 PHP
PHP计算2点经纬度之间的距离代码
2013/08/12 PHP
php环境套包 dedeampz 伪静态设置示例
2014/03/26 PHP
php+mysql数据库查询实例
2015/01/21 PHP
php生成无限栏目树
2017/03/16 PHP
JavaScript入门教程(2) JS基础知识
2009/01/31 Javascript
JS定义回车事件(实现代码)
2013/07/08 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
2015/08/01 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
微信小程序实现页面跳转传值以及获取值的方法分析
2017/12/18 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
2020/09/04 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
状态机的概念和在Python下使用状态机的教程
2015/04/11 Python
详解python持久化文件读写
2019/04/06 Python
pybind11在Windows下的使用教程
2019/07/04 Python
Python生态圈图像格式转换问题(推荐)
2019/12/02 Python
使用Bazel编译TensorBoard教程
2020/02/15 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
python 对xml解析的示例
2021/02/27 Python
收集的22款给力的HTML5和CSS3帮助工具
2012/09/14 HTML / CSS
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
美国购车网站:TrueCar
2016/10/19 全球购物
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
幼儿园教师奖惩制度
2014/02/01 职场文书
2014办公室年度工作总结
2014/12/09 职场文书
医院员工辞职信范文
2015/05/12 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
python设置 matplotlib 正确显示中文的四种方式
2021/05/10 Python
Go语言基础map用法及示例详解
2021/11/17 Golang
Anaconda安装pytorch和paddle的方法步骤
2022/04/03 Python
使用Python通过企业微信应用给企业成员发消息
2022/04/18 Python