javascript - 模态弹出窗口打开时背景屏幕变暗

标签 javascript jquery css

我有一个在单击按钮时打开的模式弹出窗口。我试图在弹出窗口打开时使背景变暗,但我无法让它工作。

这是我的:

JavaScript:

function popup(centername, centertype, area, address, province, itprovider, software, addon,
               principalname, principleemmail, itname, itemail, itno, academicname, academicno, academicemail,
               invigilatorname, invigilatorno, invigilatoremail, centeridep, provinceidep, centernameep, centertypeidep, id) {
    var $dropdown = $("#ddlCenterType");
    $("#txtCenterName").val(centername);
    $("#txtArea").val(area);
    $("#txtAddress").val(address);
    $("#ddlProvince").val(province);
    $("#ddlProvider").val(itprovider);
    $("#ddlSoftware").val(software);
    $("#ddlAddOn").val(addon);

    $("#txtPrincipalName").val(principalname);
    $("#txtPrincipalEmail").val(principleemmail);
    $("#txtITName").val(itname);
    $("#txtITemail").val(itemail);
    $("#txtITNumber").val(itno);
    $("#txtAcadName").val(academicname);
    $("#txtAcadNumber").val(academicno);
    $("#txtAcadEmail").val(academicemail);
    $("#txtInvName").val(invigilatorname);
    $("#txtInvNumber").val(invigilatorno);
    $("#txtInvEmail").val(invigilatoremail);

    $("#txtCenterId").val(centeridep);
    $("#txtProvinceID").val(provinceidep);
    $("#txtCtrName").val(centernameep);
    $("#txtTypeID").val(centertypeidep);
    $("#txtID").val(id);
    $dropdown.val(centertype);
    $("#popupdiv").dialog({
        width: 1250,
        height: 1290,
        autoOpen: true,
        modal: true,
        open: function (event, ui) {
            $(".ui-widget-overlay").css({
                background: "rgb(0, 0, 0)",
                opacity: ".50 !important",
                filter: "Alpha(Opacity=50)",
            });
        },
        buttons: {
            Close: function () {
                $(this).dialog("close");
            }
        }

    });
}

我也在 CSS 中添加了这个,但仍然不起作用:

.ui-widget-overlay {
    opacity: .50 !important;
    filter: Alpha(Opacity=50) !important;
    background-color: rgb(50, 50, 50) !important;
}

我知道这个问题已被问过几次,但我仍然无法解决。请协助。谢谢!

最佳答案

只需从不透明度中删除 important 即可。虽然我建议为此使用 CSS。您可以在模态打开和关闭时添加和删除一个类,并将其与 ui-widget-overlay 结合使用以覆盖 backgroundopacity .

这是一个工作示例,说明它是如何工作的

$( function() {
$("#dialog").dialog({
        width: 360,
        height: 290,
        autoOpen: true,
        modal: true,
        open: function (event, ui) {
            $(".ui-widget-overlay").addClass('modal-opened');
        },
        close: function(event, ui){
          $(".ui-widget-overlay").removeClass('modal-opened');
        }

    });
  } );
.ui-widget-overlay.modal-opened{
  background: rgb(0, 0, 0);
  opacity: 0.5;
  filter: Alpha(Opacity=50);         
}
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
<link href="https://code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" />	
</head>
<body>

<div id="dialog" title="Basic dialog">
  <p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
	</div>	

<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="script.js"></script>
</body>
</html>

这是上面例子的一个plnkr https://plnkr.co/edit/GUW4NFEO9omn898n8aGm?p=preview

关于javascript - 模态弹出窗口打开时背景屏幕变暗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48612027/

相关文章:

javascript - Bootstrap的button.js和Turbolinks问题

javascript - 使用 jQuery map 函数时出现箭头函数错误

jquery - 当移出父 DIV 时,使 Div 不可见

jquery - 使用 Jquery 清空文本框

jquery - 使用 jQuery 在悬停时更改当前图像

javascript - 如何在悬停时重叠 Owl Carousel 中的元素?

javascript - 内容的淡入淡出过渡

javascript - 提交的 url 中的 "?"字符

php - 根据最大和最小数字改变颜色

javascript - 在 css 文件 href Javascript 中更改 css 类背景