这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
弹出框在网站页面中是必不可少的一部分,今天借助 phperz 平台给大家分享使用 js 实现简单的弹出框效果,感兴趣的朋友一起学习吧
弹出框在网站页面中是必不可少的一部分,今天借助 phperz 平台给大家分享使用 js 实现简单的弹出框效果,本文写不好,还请见谅!
首先我们来分析弹出框的部件. 简单弹出框分为头, 内容, 尾部. 头部中有标题和关闭按钮, 内容就可以图文, 媒体, 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 以前的版本).
js 实现弹出框效果就给大家介绍这么多,希望对大家有所帮助!
来源: http://www.phperz.com/article/17/0408/267076.html