CSS-根据背景更改文本颜色

时间:2018-08-01 10:05:23

标签: jquery html css

我有一个简单的布局,由三个全高div和一个固定的标题栏组成。

body,html {
  padding:0;
  margin:0;
}

.header {
  position:fixed;
  width:100%;
  height:50px;
  color:white;
  margin:20px;
}

.section1 {
  background:black;
  height:100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  color:white;
}

.section2 {
  background:white;
  height:100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.section3 {
  background:black;
  height:100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  color:white;
}
<div class="header">
  Header Content
</div>
<div class="wrapper">
  <div class="section1">
    Section One Content
  </div>
  <div class="section2">
    Section Two Content
  </div>
  <div class="section3">
    Section Three Content
  </div>
</div>

我试图使标题栏文本在具有白色背景的部分上滚动时变为黑色。

我已经看到了几个应该可以实现此目标的jQuery插件,但我正在努力避免任何不必要的脚本。

CSS mix-blend-mode函数是否可以实现这一目标?有没有人能举例说明他们可以实现类似的目标?

2 个答案:

答案 0 :(得分:6)

您可以使用mix-blend-mode:difference

body,
html {
  padding: 0;
  margin: 0;
}

.header {
  position: fixed;
  width: 100%;
  height: 50px;
  margin: 20px;
  color:#fff;
  mix-blend-mode: difference;
}

.section1,
.section2,
.section3{
  background: black;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
}

.section2 {
  background: white;
  color:#000;
}
<div class="header">
  Header Content
</div>
<div class="wrapper">
  <div class="section1">
    Section One Content
  </div>
  <div class="section2">
    Section Two Content
  </div>
  <div class="section3">
    Section Three Content
  </div>
</div>

答案 1 :(得分:0)

您可以使用jquery进行操作,当发生某些情况时,请执行以下操作:

$('yourdiv1').css({"color": "black"})
$('yourdiv2').css({"background-color": "white"})

仅将其设置为默认值:

$('yourdiv1').css({"color": ""})
$('yourdiv2').css({"background-color": ""})

还添加transitions使其看起来非常漂亮。