在没有使用jQuery的情况下,可以通过纯JavaScript来实现外部点击时使div
模糊的效果。这通常涉及到事件监听和DOM操作。
以下是一个简单的示例,展示了如何实现这一功能:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Blur Div on Outside Click</title>
<style>
.blur {
filter: blur(5px);
}
</style>
</head>
<body>
<div id="myDiv" style="width: 200px; height: 200px; background-color: lightblue;">
Click outside this box to blur it.
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
var myDiv = document.getElementById('myDiv');
// Function to check if the click was outside the div
function isClickOutside(event) {
return !myDiv.contains(event.target);
}
// Add event listener for clicks on the document
document.addEventListener('click', function(event) {
if (isClickOutside(event)) {
myDiv.classList.add('blur');
} else {
myDiv.classList.remove('blur');
}
});
});
</script>
</body>
</html>
div
内部时也会触发模糊效果?原因:可能是因为事件冒泡导致的,即点击div
内部时,事件也传递到了文档级别。
解决方法:在div
内部的点击事件中阻止事件冒泡。
myDiv.addEventListener('click', function(event) {
event.stopPropagation();
});
通过这种方式,可以确保只有当点击发生在div
外部时,才会应用模糊效果。
通过上述方法,可以在不使用jQuery的情况下,有效地实现点击页面其他部分时对特定div
进行模糊处理的功能。这种方法不仅提高了性能,还增加了代码的可维护性和灵活性。
领取专属 10元无门槛券
手把手带您无忧上云