javascript - CSS 模糊整个部分,而不模糊内部的 div

标签 javascript html

快速提问。 我试图在点击时模糊整个部分,但我希望该部分内的 div 不会随之模糊。

我尝试使用 JS 更改 div 的属性,important.setProperty,但没有成功。

const handleClickCard = e => {
    const $currentCard = e.currentTarget;
    const $cardDiv = document.querySelector('.card1');
    const $bg = document.querySelector('.overleven');

    if ($currentCard.dataset.id === '1') {
      $cardDiv.style.display = 'initial';
      $bg.style.filter = 'blur(10px)';
      $cardDiv.style.setProperty('filter', 'none', 'important');
    }
  };
<section class="overleven">
    <div class="overleven--wrapper">
      <p class="overleven--info overleven--info--title">Er zijn veel potentiële dreigingen tijdens hun trektocht naar het zuiden, dus moeten ze altijd alert blijven.</p>
      <p class="overleven--info overleven--info--subtitle">Klik op een vuurkaart om een bedreiging te onthullen.</p>
    </div>
    <div class="cards">
      <img data-id="1" src="./assets/longread/card.png" alt="een dreigingskaart" class="card">
      <img data-id="2" src="./assets/longread/card.png" alt="een dreigingskaart" class="card">
      <img data-id="3" src="./assets/longread/card.png" alt="een dreigingskaart" class="card">
  </div>
  <div class="card1">
  </div>
  <div class="card2"></div>
  <div class="card3"></div>
</section>

  

最佳答案

根据渲染的工作方式,您无法在不模糊子级的情况下模糊父级。渲染以树的形式完成,并全程缓存。

你能做的就是模糊除一个 child 之外的所有 child :

#items:hover * {
  filter: blur(3px);
}

#items:hover *:hover {
  filter: none;
}
<div id="items">
  <div>Hey</div>
  <div>Hallo</div>
  <div>Gutentag</div>
</div>

关于javascript - CSS 模糊整个部分,而不模糊内部的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59869690/

相关文章:

php - Jquery 和 php 无法将图像从文件夹加载到屏幕上

html - 无法为子元素设置新的原始值

javascript - XMPP 一次仅接收一条消息

javascript - 字典键值总是返回未定义

javascript - 在 $http 拦截器中重新调用 $http 请求

html - 视频应编码为哪些格式

javascript - 使用 jQuery 隐藏元素

php - 比较从 MySql 数据库中提取的字符串日期

javascript - 使用 javascript 或 jQuery 更新两个复选框选择的价格

javascript - react ,未捕获的范围错误 : Maximum call stack size exceeded