jquery 点击弹框

<a href="#" class="big-link" data-reveal-id="myModal" data-animation="fade">jquery点我弹出</a>
        <div id="myModal" class="reveal-modal">
            <h1>
                jquery弹出层
            </h1>
            <p>
                jQuery插件库1122345636456458
            </p><a class="close-reveal-modal">×</a>
        </div>

  

.reveal-modal-bg
{
	position:fixed;
	height:100%;
	width:100%;
	z-index:100;
	display:none;
	top:0;
	left:0;
	background:rgba(00,00,00,0.8);
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#cc000000,endColorstr=#cc000000);
}

.reveal-modal
{
	visibility:hidden;
	top:150px;
	left:50%;
	margin-left:-300px;
	width:520px;
	position:absolute;
	z-index:101;
	-moz-border-radius:5px;
	-webkit-border-radius:5px;
	border-radius:5px;
	-moz-box-shadow:0 0 10px rgba(0,0,0,.4);
	-webkit-box-shadow:0 0 10px rgba(0,0,0,.4);
	-box-shadow:0 0 10px rgba(0,0,0,.4);
	background-color:#FFF;
	padding:30px 40px 34px;
}

.reveal-modal.small
{
	width:200px;
	margin-left:-140px;
}

.reveal-modal.medium
{
	width:400px;
	margin-left:-240px;
}

.reveal-modal.large
{
	width:600px;
	margin-left:-340px;
}

.reveal-modal.xlarge
{
	width:800px;
	margin-left:-440px;
}

.reveal-modal .close-reveal-modal
{
	font-size:22px;
	line-height:0.5;
	position:absolute;
	top:8px;
	right:11px;
	color:#333;
	text-shadow:0 -1px 1px rbga(0,0,0,.6);
	font-weight:700;
	cursor:pointer;
}

body
{
	background-color:#F2F2F2;
}

 引用jq jquery-1.11.3.min.js

$(function() {

/*---------------------------
 Defaults for Reveal
----------------------------*/

/*---------------------------
 Listener for data-reveal-id attributes
----------------------------*/

    $(‘a[data-reveal-id]‘).on(‘click‘, function(e) {
        e.preventDefault();
        var modalLocation = $(this).attr(‘data-reveal-id‘);
        $(‘#‘+modalLocation).reveal($(this).data());
    });

/*---------------------------
 Extend and Execute
----------------------------*/

    $.fn.reveal = function(options) {

        var defaults = {
            animation: ‘fadeAndPop‘, //fade, fadeAndPop, none
            animationspeed: 300, //how fast animtions are
            closeonbackgroundclick: true, //if you click background will modal close?
            dismissmodalclass: ‘close-reveal-modal‘ //the class of a button or element that will close an open modal
        };

        //Extend dem‘ options
        var options = $.extend({}, defaults, options);

        return this.each(function() {

/*---------------------------
 Global Variables
----------------------------*/
            var modal = $(this),
                topMeasure  = parseInt(modal.css(‘top‘)),
                topOffset = modal.height() + topMeasure,
                locked = false,
                modalBG = $(‘.reveal-modal-bg‘);

/*---------------------------
 Create Modal BG
----------------------------*/
            if(modalBG.length == 0) {
                modalBG = $(‘<div class="reveal-modal-bg">‘).insertAfter(modal);
            }          

/*---------------------------
 Open & Close Animations
----------------------------*/
            //Entrance Animations
            modal.on(‘reveal:open‘, function () {
              modalBG.off(‘click.modalEvent‘);
                $(‘.‘ + options.dismissmodalclass).off(‘click.modalEvent‘);
                if(!locked) {
                    lockModal();
                    if(options.animation == "fadeAndPop") {
                        modal.css({‘top‘: $(document).scrollTop()-topOffset, ‘opacity‘ : 0, ‘visibility‘ : ‘visible‘});
                        modalBG.fadeIn(options.animationspeed/2);
                        modal.delay(options.animationspeed/2).animate({
                            "top": $(document).scrollTop()+topMeasure + ‘px‘,
                            "opacity" : 1
                        }, options.animationspeed,unlockModal());
                    }
                    if(options.animation == "fade") {
                        modal.css({‘opacity‘ : 0, ‘visibility‘ : ‘visible‘, ‘top‘: $(document).scrollTop()+topMeasure});
                        modalBG.fadeIn(options.animationspeed/2);
                        modal.delay(options.animationspeed/2).animate({
                            "opacity" : 1
                        }, options.animationspeed,unlockModal());
                    }
                    if(options.animation == "none") {
                        modal.css({‘visibility‘ : ‘visible‘, ‘top‘:$(document).scrollTop()+topMeasure});
                        modalBG.css({"display":"block"});
                        unlockModal()
                    }
                }
                modal.off(‘reveal:open‘);
            });    

            //Closing Animation
            modal.on(‘reveal:close‘, function () {
              if(!locked) {
                    lockModal();
                    if(options.animation == "fadeAndPop") {
                        modalBG.delay(options.animationspeed).fadeOut(options.animationspeed);
                        modal.animate({
                            "top":  $(document).scrollTop()-topOffset + ‘px‘,
                            "opacity" : 0
                        }, options.animationspeed/2, function() {
                            modal.css({‘top‘:topMeasure, ‘opacity‘ : 1, ‘visibility‘ : ‘hidden‘});
                            unlockModal();
                        });
                    }
                    if(options.animation == "fade") {
                        modalBG.delay(options.animationspeed).fadeOut(options.animationspeed);
                        modal.animate({
                            "opacity" : 0
                        }, options.animationspeed, function() {
                            modal.css({‘opacity‘ : 1, ‘visibility‘ : ‘hidden‘, ‘top‘ : topMeasure});
                            unlockModal();
                        });
                    }
                    if(options.animation == "none") {
                        modal.css({‘visibility‘ : ‘hidden‘, ‘top‘ : topMeasure});
                        modalBG.css({‘display‘ : ‘none‘});
                    }
                }
                modal.off(‘reveal:close‘);
            });    

/*---------------------------
 Open and add Closing Listeners
----------------------------*/
            //Open Modal Immediately
        modal.trigger(‘reveal:open‘)

            //Close Modal Listeners
            var closeButton = $(‘.‘ + options.dismissmodalclass).on(‘click.modalEvent‘, function () {
              modal.trigger(‘reveal:close‘)
            });

            if(options.closeonbackgroundclick) {
                modalBG.css({"cursor":"pointer"})
                modalBG.on(‘click.modalEvent‘, function () {
                  modal.trigger(‘reveal:close‘)
                });
            }
            $(‘body‘).keyup(function(e) {
                if(e.which===27){ modal.trigger(‘reveal:close‘); } // 27 is the keycode for the Escape key
            });

/*---------------------------
 Animations Locks
----------------------------*/
            function unlockModal() {
                locked = false;
            }
            function lockModal() {
                locked = true;
            }  

        });//each call
    }//orbit plugin call
});

  

原文地址:https://www.cnblogs.com/zhoubingyan/p/9176759.html

时间: 2024-10-24 13:26:45

jquery 点击弹框的相关文章

jquery点击弹框外层关闭弹框

$(document).bind("click",function(e){            if($( e.target ).closest(".game-container").length == 0){                alert(111);                $(".game-container").hide();//game-container是弹框的样式名称            }else{      

简单的jquery点击弹出背景变暗遮罩效果

工作中自己写了一个简单的jquery点击弹出背景变暗遮罩效果,非常好用......只把关键代码贴出来.并实现了点击空白处隐藏弹出层效果. js代码如下: <script type="text/javascript">  $(document).ready(function(){   $(".tkyy").click(function(event){      event.stopPropagation(); //停止事件冒泡    $(".ma

jQuery点击弹出层,弹出模态框,点击模态框消失

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 <!DOCTYPE html>

jQuery一次弹框实例

服务器环境下: <!doctype html><html><head><meta charset="utf-8"><title>弹框</title><script type="text/javascript" src="js/jquery-3.3.1.min.js"></script><script type="text/javascr

vue实现点击一个按钮出现弹框,点击弹框外关闭弹框

效果图展示: View层 <template> <div> <div class="mask" v-if="showModal" @click="showModal=false"></div> <div class="pop" v-if="showModal"> <button @click="showModal=false&quo

jquery input选择弹框

index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd&quo

jquery 点击弹出层自身以外的任意位置,关闭弹出层

<!--弹出层---> <div class="mask">    <div class="wrap"></div> </div> /***弹出层效果***/ $(".header").find(".a5").click(function(e){ e.stopPropagation();//阻止冒泡 $('.mask').css("display"

微信点击弹框

if (eventType.equalsIgnoreCase(MessageUtil.EVENT_TYPE_CLICK)) { // 事件KEY值,与创建自定义菜单时指定的KEY值对应 String eventKey = requestMap.get("EventKey"); if (eventKey.equals("CONTACT_US")) { NewsMessage newsMessage = buildmessage(open_id, toUserName,

vue中点击空白处隐藏弹框(用指令优雅地实现)

在写vue的项目的时候,弹框经常性出现,并要求点击弹框外面,关闭弹框,那么如何实现呢?且听我一一...不了,能实现效果就好 <template> <div> <div class="show" v-show="show" v-clickoutside="handleClose"> 显示 </div> </div> </template> <script> cons