zoukankan      html  css  js  c++  java
  • Jquery实现遮罩层

    1、假设#main为页面body中的最外层Div标签

    2、背景被遮罩后,显示的弹出窗(默认是不显示的,所包含的CSS这里就不贴了):

    <!-- Status Bar Start -->
    <div id="warning-dialog" class="status warning center-top no-display">
        <p class="closestatus"><a href="javascript:$().hideWarningDialog()" title="Close">x</a></p>
        <div class="clear"></div>
        <p><img src="images/icon_warning.png" alt="Warning" /><span id="warning-dialog-detail">Attention!</span></p>
        <div class="closes">
            <input type="hidden" id="refresh-after-warning" value="false" />
            <input name="" type="image" src="images/niu_qd.jpg" align="absmiddle" class="button_jl"  onclick="javascript:$().hideWarningDialog()" />
        </div>
    </div>
    <!-- Status Bar End -->

    3、在script.js中定义遮罩函数以及弹出窗操作函数,当然script.js,jquery.js需要包含在html页面中:

    var warning_dialog = $('#warning-dialog'), 
        warning_dialog_detail = $('#warning-dialog-detail'), 
        refresh_after_warning = $('#refresh-after-warning');
    // 显示遮罩层
    $.fn.showWarningDialog = function(detail, refresh) {
        if ($isIE6) {
            $(".menu_select").hide();
        }
        $.fn.mask();
        warning_dialog_detail.html(detail);
        refresh_after_warning.val(refresh);
        warning_dialog.css({
            "position" : "absolute",
            "left" : "50%",
            "top" : "50%",
            "margin-left" : "-250px",
            "margin-top" : "-100px",
            "border" : "solid 3px #ccc",
            "z-index" : 6000
        });
        warning_dialog.show();
    }
    // 去除遮罩层
    $.fn.hideWarningDialog = function() {
        if ($isIE6) {
            $(".menu_select").show();
        }
        $.fn.unmask();
        if (refresh_after_warning.val() == "true") {
            $('#main').showLoading();
            location.reload(true);
        } else
            warning_dialog.hide();
    }
    // 显示遮罩效果
    $.fn.mask = function() {
        this.unmask();
        // 参数
        var op = {
            bgcolor : '#ccc',
            z : 5100,
            opacity : 0.3
        };
        var position = {
            top : 0,
            left : 0
        };
        var original = $("#main");
        // 创建一个 Mask 层,追加到对象中
        var maskDiv = $('<div class="maskdivgen">&nbsp;</div>');
        maskDiv.appendTo(original);
        var maskWidth = original.width();
        var maskHeight = original.height();
        maskDiv.css({
            position : 'absolute',
            top : position.top,
            left : position.left,
            'z-index' : op.z,
            width : maskWidth,
            height : maskHeight,
            'background-color' : op.bgcolor,
            opacity : 0
        });
        maskDiv.fadeIn('fast', function() {
            // 淡入淡出效果
            $(this).fadeTo('fast', op.opacity);
        });
        return maskDiv;
    }
    // 去除遮罩效果
    $.fn.unmask = function() {
        var original = $("#main");
        if (this[0] && this[0] !== window.document) {
            original = $(this[0]);
        }
        original.find("> div.maskdivgen").fadeOut('fast', 0, function() {
            $(this).remove();
        });
    }

     本例中使用main标签获得高度,宽度,如果不想通过标签获得页面高度和宽度,可通过如下方式获得

    /* 当前页面高度 */
     function pageHeight() {
         return document.body.scrollHeight;
     }
     
     /* 当前页面宽度 */
     function pageWidth() {
         return document.body.scrollWidth;
     }

    4、调用遮罩层:

    <script type="text/javascript">
                
                function init() {
                    <?php
                        if ($msg != "用户名输入错误") {
                    ?>
                        $.fn.showWarningDialog("<?php echo $msg; ?>", "false");
                    <?php
                        }
                    ?> 
                }
    
                window.onload = function(){
                    init();
                };
     </script>

    推荐一个自己业余时间开发的网盘搜索引擎,360盘搜www.360panso.com

  • 相关阅读:
    [转]vim 退格键(backspace)不能用
    centos出现“FirewallD is not running”怎么办
    cordova 实现拨打电话-只需两步(H5)
    腾讯云上运行java程序过程
    centos7 安装php
    centos 7 PostgreSQL一些简单问题以及解决办法
    centos 安装 java
    git push报错error: failed to push some refs to 'git@github.com:
    linux install beanstalkd
    centos7 执行一个数据库脚本创建项目中的数据库
  • 原文地址:https://www.cnblogs.com/eczhou/p/2816577.html
Copyright © 2011-2022 走看看