javascript - CSS模糊整个部分,而不模糊内部的div
问题描述
快速提问。我试图在点击时模糊整个部分,但我希望该部分内的 div 不会被它模糊。
我尝试使用 JSimportant
和.setProperty
JS 更改 div 的属性,但没有运气。
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>
解决方案
渲染的工作方式,你不能在不模糊孩子的情况下模糊父母。渲染以树的形式完成,并在整个过程中进行缓存。
您可以做的是模糊除一个之外的所有孩子:
#items:hover * {
filter: blur(3px);
}
#items:hover *:hover {
filter: none;
}
<div id="items">
<div>Hey</div>
<div>Hallo</div>
<div>Gutentag</div>
</div>
推荐阅读
- rxjs - RXJS:订阅共享运算符会导致奇怪的行为
- pandas - Pandas - 将带逗号的行转换为数据框中的多行
- android - Google 游戏服务 - 签名证书指纹 (SHA1)。调试密钥库始终无效
- kotlin - 无法使用 init 块来初始化属性
- c++ - 如何在 Windows 10 中更改铃声(“\a”)
- reactjs - 测试时,导致 React 状态更新的代码应该被封装到 act 中
- wordpress - wp-admin中的Macos nginx php 7.3 wordpress错误
- apache-kafka - 如何在没有 Kafka Connect 接收器的情况下将数据从 Kafka 获取到存储中?
- angular - Ionic 4 响应式网格
- python - 如何解决显示错误路径的操作系统错误