簡體   English   中英

如何禁用除特定div之外的整個頁面?

[英]How can I disable the entire page apart from a specific div?

我有一個彈出的<div>元素,當它出現時,其后面的內容將更改為opacity: 0.2以使<div>使用此行代碼脫穎而出:

$(".main").css("opacity", "0.2");

我如何“禁用” <div>后面的內容以防止使用jQuery單擊它?

我有以下幾行代碼可以防止按鈕被單擊並防止指針光標出現,但是它不能完全禁用內容,因為仍然可以突出顯示文本,並且可能還有更多內容:

$("form :input").attr("disabled","disabled");
$(".main .input").css("cursor", "auto"); 

是否有一行代碼實際上禁用了頁面(除div之外),而不是每件事都使用不同的代碼行(例如,阻止文本突出顯示並禁用按鈕)?

基本上有兩個選項可供選擇:使用css user-select: none具有當前的缺點(瀏覽器支持) https://developer.mozilla.org/zh-CN/docs/Web/CSS/user-select或添加模態和實際內容之間的疊加層div。 有幾種方法,下面的鏈接將為您提供概述,並為您指明正確的方向: https : //tympanus.net/codrops/2013/11/07/css-overlay-techniques/

我個人將使用偽元素技術,而不是更新不透明度,直接在主要元素上切換一個類:

/* JS */
$(".main").addClass("has-overlay");

/* CSS */
.main.has-overlay {
  opacity: 0.2;
}

.main:after {
  content: "";
  display: none;
  position: fixed; /* could also be absolute */ 
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 10;
  background transparent;
}

.main.has-overlay:after {
  display: block;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM