javascript - Html 页面中选定的 div 突出显示

标签 javascript jquery html css

当我单击测试 1、测试 2 或测试 3 时,单击的 div 将从其他两个 div 突出显示。我想做的是,当 div 突出显示时,页面的其他区域必须变暗(不透明度降低)然后单击 div 仅从整页突出显示。 请有人帮我完成这件事..

工作样本在这里

$(function() {
  $('.section').click(function() {
    $('.section2').removeClass('section2');
    $(this).addClass('section2');
  });
});
.container {
  width: 400px;
  margin: 0 auto;
}

.section {
  height: 50px;
  margin: 10px;
  background-color: red;
  color: white;
  box-shadow: 3px 3px 15px rgba(102, 102, 102, 0);
  border: 1px solid rgba(0, 0, 0, 0);
  opacity: .3;
}

.section2 {
  height: 50px;
  background-color: green;
  color: white;
  margin: 10px;
  opacity: 1 !important;
  box-shadow: 3px 3px 15px #666;
  border: 1px solid #7d7d7d;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <header>This is header of the sample </header>
  <br/>
  <div class="div-list">
    <div class="section">
      <h2>Test 1</h2>
    </div>
    <div class="section">
      <h2>Test 2</h2>
    </div>
    <div class="section">
      <h2>Test 3</h2>
    </div>
  </div>
  <br/>
  <footer>
    <h3>This is footer of the sample </h3>
  </footer>
</div>

最佳答案

当您的一个元素被点击时,您可以在整个容器或页面上设置黑色背景并设置正确的不透明度。

$(function() {
  $('.section').click(function() {
    $('.section2').removeClass('section2');
    $(this).addClass('section2');
    $(".container").css({"background-color": "rgba(0,0,0,0.7)"});
  });
});

已更新 JsFiddle:https://jsfiddle.net/g1jqyk8x/5/

更新如果你想让突出显示消失,你必须编写一个函数来检查你是否点击了正文但在你的元素之外。

$("body").click(function(e) {
        if (e.target.class == "div-list" || $(e.target).parents(".div-list").size()) 
        {
             //This triggers if you click on them
        }
        else
        {     
             //This triggers if you click outside of them
           $(".container").css({"background-color": "rgba(0,0,0,0)"});
           $('.section2').removeClass('section2');
        }
  });

JsFiddle:https://jsfiddle.net/g1jqyk8x/6/

关于javascript - Html 页面中选定的 div 突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46340251/

相关文章:

javascript - 在reactjs中处理多个日期选择器

javascript - 如何使用 JQuery 更改 EJS 中的单个元素

javascript - 尝试从 jquery-contextmenu 菜单中动态删除 "sep1"项。我该如何处理它?

javascript - 如何将输入文本框的值及其id传递给javascript函数,以便它通过ajax发出post请求?

php - 有什么好的方法可以将后台代码与 HTML 显示代码分开?

javascript - 单击图像元素时获取图像元素的 SRC

javascript - 使用 "Possible strict violation."时 JSHint `bind`

javascript - 在禁用 JavaScript 的情况下使用 HTML 提交表单

jquery - 使用 jquery 将状态 json 数据放入下拉列表中选择

html - Razor 布局的复选框位置不正确