css - 阻止模糊的标题图像稍微透明

标签 css

我正在处理一个缩小到 40 像素的标题 + 滚动时模糊背景图像,效果很好,但是当我滚动时,由于模糊,您可以看到内容通过模糊的标题达到峰值当您向下浏览页面时。我仍在学习所有的 css 转换和过滤器,所以我想知道是否有办法防止这种情况发生?

我的代码是

.blur-header{
   height:40px;
   -webkit-filter: blur(10px) brightness(1);
   -moz-filter: blur(10px) brightness(1);
   -o-filter: blur(10px) brightness(1);
   -ms-filter: blur(10px) brightness(1);
   transition: all 0.3s ease-in-out;
}

我创建了一个示例来准确显示模糊图像的不透明度是怎么回事:

$(document).on("scroll", function() {
  if ($(document).scrollTop() > 10) {
    $('header').addClass('blur-header');
  } else {
    $('header').removeClass('blur-header');
  }
})
* {
  margin: 0 auto;
}

header {
  width: 100%;
  height: 200px;
  position: fixed;
  text-align: center;
  font-size: 40px;
  background-image: url("http://www.theyucatantimes.com/wp-content/uploads/2018/01/pet.jpg");
  background-repeat: no-repeat;
  background-size: cover;
  transition: all 0.3s ease-in-out
}

.blur-header {
  height: 40px;
  -webkit-filter: blur(10px) brightness(1);
  -moz-filter: blur(10px) brightness(1);
  -o-filter: blur(10px) brightness(1);
  -ms-filter: blur(10px) brightness(1);
  transition: all 0.3s ease-in-out;
}

.main-content {
  width: 80%;
  padding-top: 200px;
}

img {
  margin: 30px auto;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<header>HEADER TEXT</header>

<div class="main-content">
  <img src="https://cdn2-www.dogtime.com/assets/uploads/gallery/newfoundland-dogs-and-puppies/newfoundland-dogs-puppies-1.jpg">

  <img src="https://cdn2-www.dogtime.com/assets/uploads/gallery/newfoundland-dogs-and-puppies/newfoundland-dogs-puppies-1.jpg">

  <img src="https://cdn2-www.dogtime.com/assets/uploads/gallery/newfoundland-dogs-and-puppies/newfoundland-dogs-puppies-1.jpg">

  <img src="https://cdn2-www.dogtime.com/assets/uploads/gallery/newfoundland-dogs-and-puppies/newfoundland-dogs-puppies-1.jpg">
</div>

最佳答案

您需要将模糊量从 10px 减少到 3-5px 左右;

.blur-header{
   height:40px;
   -webkit-filter: blur(3px) brightness(1);
   -moz-filter: blur(3px) brightness(1);
   -o-filter: blur(3px) brightness(1);
   -ms-filter: blur(3px) brightness(1);
   transition: all 0.3s ease-in-out;
}

它从边缘开始模糊,所以像素越多,图像的高度/宽度就越多。如果您想模糊更多并保持原始尺寸,我建议创建一个单独的 <div>包含可以应用模糊的标题。

关于css - 阻止模糊的标题图像稍微透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51878281/

相关文章:

asp.net - 布局问题 CSS

javascript - HTML:在滚动过程中越过固定在页面顶部的粘性文本时屏幕断断续续

javascript - 回调函数自动滚动失败

html - 使用 Flexbox 垂直居中标题元素和内联 div 组

html - 位置为 : absolute pushing down content 的 CSS3 布局

css - 如何使访问的 <article> 元素 0.5 不透明?

html - 预定义 HTML 结构中单选按钮、标签和可选标题的 CSS

html - 两列不同位置

Javascript箭头选择+滚动条

css - 在下拉菜单上有一个下拉菜单?