自适应弹出框-垂直居中

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="……"/>
<title>自适应弹出框</title>
<style type="text/css">
.box-mask {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #000;
	opacity: 0.5;
	filter: alpha(opacity=50);
	z-index: 99;
	display: none;
}
.box {
	position: absolute;
	padding:10px;
	border: 1px solid #ccc;
	background: #F0F0F0;
	text-align: center;
	z-index: 101;
	display: none;
}
.btnDel {
	font: "微软雅黑";
	font-size: 14px;
	width: 125px;
	height: 33px;
	line-height: 33px;
	vertical-align: middle;
	background-image: url(images/btn.png);
	background-repeat: no-repeat;
	border: 0px !important;
	color: #fff;
	cursor: pointer;
	background-color: transparent;
}
</style>
<script src="js/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    var isOpen = 0;
    //全局变量,判断是否已经打开弹出框
    $(".btnDel").click(function() {
        //$(".box-mask").css({"display":"block"});
        $(".box-mask").fadeIn(500);
        center($(".box"));
        //载入弹出窗口上的按钮事件
        checkEvent($(this).parent(), $(".btnSure"), $(".btnCancel"));
    });
    function center(obj) {
        //obj这个参数是弹出框的整个对象
        var screenWidth = $(window).width(), screenHeigth = $(window).height();
        //获取屏幕宽高
        var scollTop = $(document).scrollTop();
        //当前窗口距离页面顶部的距离
        var objLeft = (screenWidth - obj.width()) / 2;
        ///弹出框距离左侧距离
        var objTop = (screenHeigth - obj.height()) / 2 + scollTop;
        ///弹出框距离顶部的距离
        obj.css({
            left:objLeft + "px",
            top:objTop + "px"
        });
        obj.fadeIn(500);
        //弹出框淡入
        isOpen = 1;
        //弹出框打开后这个变量置1 说明弹出框是打开装填
        //当窗口大小发生改变时
        $(window).resize(function() {
            //只有isOpen状态下才执行
            if (isOpen == 1) {
                //重新获取数据
                screenWidth = $(window).width();
                screenHeigth = $(window).height();
                var scollTop = $(document).scrollTop();
                objLeft = (screenWidth - obj.width()) / 2;
                var objTop = (screenHeigth - obj.height()) / 2 + scollTop;
                obj.css({
                    left:objLeft + "px",
                    top:objTop + "px"
                });
                obj.fadeIn(500);
            }
        });
        //当滚动条发生改变的时候
        $(window).scroll(function() {
            if (isOpen == 1) {
                //重新获取数据
                screenWidth = $(window).width();
                screenHeigth = $(window).height();
                var scollTop = $(document).scrollTop();
                objLeft = (screenWidth - obj.width()) / 2;
                var objTop = (screenHeigth - obj.height()) / 2 + scollTop;
                obj.css({
                    left:objLeft + "px",
                    top:objTop + "px"
                });
                obj.fadeIn(500);
            }
        });
    }
    //导入两个按钮事件 obj整个页面的内容对象,obj1为确认按钮,obj2为取消按钮
    function checkEvent(obj, obj1, obj2) {
        //确认后删除页面所有东西
        obj1.click(function() {
            //移除所有父标签内容
            obj.remove();
            //调用closed关闭弹出框
            closed($(".box-mask"), $(".box"));
        });
        //取消按钮事件
        obj2.click(function() {
            //调用closed关闭弹出框
            closed($(".box-mask"), $(".box"));
        });
    }
    //关闭弹出窗口事件
    function closed(obj1, obj2) {
        obj1.fadeOut(500);
        obj2.fadeOut(500);
        isOpen = 0;
    }
});
</script>
</head>

<body>
<input type="submit" class="btnDel" value="删除"/>
<div class="box-mask"></div>
<div class="box">
  <p>确定要删除吗?</p>
  <p>
    <input type="button" value="确定" class="btnSure"/>
    <input type="button" value="取消"class="btnCancel"/>
  </p>
</div>
</body>
</html>

时间: 2024-11-08 07:00:31

自适应弹出框-垂直居中的相关文章

设置弹出框水平、垂直居中

自制一个友好的弹出框,当点击页面某个对象时,弹出提示框,一下是设置弹出框水平和垂直居中的代码: 1 function setElementCoordinate(obj) { 2 var d_width = document.documentElement.clientWidth;//计算当前可显示屏幕的宽度 3 var d_height = document.documentElement.clientHeight;//计算当前可显示屏幕的高度 4 5 var obj_width = $(obj

vh属性-- 一个永远垂直居中的弹出框

下面的demo,无论浏览器大小如何改变,滚动条是否滚动,弹出框永远水平垂直居中 <html> <head> <title></title> </head> <style type="text/css"> .wrap{ position: absolute; top:0; width: 100%; height: 100%; background-color: #CEC6C6; opacity: 0.75; z-in

Bootstarp学习(二十三)模态弹出框(Modals)

这一小节我们先来讲解一个"模态弹出框",插件的源文件:modal.js. 右侧代码编辑器(30行)就是单独引入 bootstrap 中发布出的"modal.js"文件. 样式代码: ? LESS版本:modals.less ? Sass版本:_modals.scss ? 编译后的Bootstrap:对应bootstrap.css文件第5375行-第5496行 在 Bootstrap 框架中把模态弹出框统一称为 Modal.这种弹出框效果在大多数 Web 网站的交互中

【Unity技巧】自定义消息框(弹出框)

写在前面 这一篇我个人认为还是很常用的,一开始也是实习的时候学到的,所以我觉得实习真的是一个快速学习工程技巧的途径. 提醒:这篇教程比较复杂,如果你不熟悉NGUI.iTween.C#的回调函数机制,那么这篇文章可能对你比较有难度,当然你可以挑战自我. 言归正传,消息框,也就是Message Box,在Windows下很常见,如下图: 在游戏里,我们也会用到这样的消息框.例如用户按了返回按钮,一般都会弹出一个确认退出的按钮.用户在执行某些重要操作时,我们总是希望再一次确认以防用户的无意操作,以此来

IOS7风格弹出框-支持block回调

已经很长一段时间没有更新博客了,今天写了个弹出框,主要用于SDK里面 现贴出来分享下: #import <Foundation/Foundation.h> @interface SYTipView : NSObject + (SYTipView *)shareInstance; - (void)showSuccessTipWithText:(NSString *)tipText; - (void)showErrorTipWithText:(NSString *)tipText; - (void

弹出框始终保持居中(包括有滚动条和窗体缩放时)

之前写的代码,都是在当前窗口位于居中,可是一旦窗口缩小或者放大都不是位于居中的位置了,但是一直想写的一个类似于alert弹出窗口的效果. 原理很简单: 获取当前屏幕(窗体)的宽度和高度,因为不同浏览器的窗体大小是不一样的.有了这个,可以计算出来横向居中和垂直居中的坐标.但是滑动了滚动条怎么依然横向居中和垂直居中呢?这个时候就要获取当前窗体距离页面顶部的高度和横向滚动条移动的宽度,加到刚刚的y轴坐标即可. $(document)是获取整个网页的,$(window)是获取当前窗体的,这个要搞清楚.

Bootstrap模态弹出框

前面的话 在 Bootstrap 框架中把模态弹出框统一称为 Modal.这种弹出框效果在大多数 Web 网站的交互中都可见.比如点击一个按钮弹出一个框,弹出的框可能是一段文件描述,也可能带有按钮操作,也有可能弹出的是一张图片.本文将详细介绍Bootstrap模态弹出框 结构分析 Bootstrap框架中的模态弹出框,分别运用了“modal”.“modal-dialog”和“modal-content”样式,而弹出窗真正的内容都放置在“modal-content”中,其主要又包括三个部分: ? 

一个简单的弹出框组件

个人写这个弹出框的原因就一个,就是能给我带来可复用,追求新,要简单,可扩展.要达到炫酷有点难度,分析后还是决定以功能为主,因为是用jq和animation实现的弹出框组件,所以看起来难度不大,简称co-dialog. 灵感来源,因为工作中用到dialog,发现UI设计的弹出框的风格一直在变化,于是每次都要重新写一个弹出框,无意中增加了无用的工作量,所以果断就封装成一个弹出框组件,目前的锥形仅支持PC,然后又加入了CSS3动画效果,如果要引入动画效果就需要高版本的Browser才能使用,期望你能一

co-dialog弹出框组件-版本v2.0.1

具体案例查看co-dialog:https://koringz.github.io/co-dialog/index.html 2.0.1版本优化项,代码压缩,修复PC和移动端自适应,修复显示弹出框浏览器边框隐藏对body产生内容错位,添加 onResize 默认为 true, 添加选项 type 不同类型显示弹出框 ['success', 'error', 'warning', 'info', 'question']. 压缩内容的实现方式,主要是通过重构了内部代码,整理静态方法,抽离被多次调用的