当检测到特定类时(滚动时)如何隐藏/显示div?

时间:2019-01-17 12:00:34

标签: javascript html css

我有一个粘性标头,向下滚动后会得到一个附加的.header-scrolled类。向下滚动时,我想更改标题中的徽标。

这是我的简化HTML:

<header class=".header-sticky">
  <div class="logo1">
    <img src="../image1.jpg">
  </div>
  <div class="logo2">
    <img src="../image2.jpg">
  </div>
</header>

<div class="logo2">中检测到.header-scrolled类并反转之前,如何使整个<header>不显示-隐藏<div class="logo1">并在<div class="logo2">时显示dbWriteTable(con, "BIOutput", data[Cdate == date,], append = TRUE); 滚动后出现标题中的相应类?

2 个答案:

答案 0 :(得分:2)

通过使用CSS,无需使用JavaScript:

.logo1 { display: block; }
.logo2 { display: none; }

.header-scrolled .logo1 { display: none; }
.header-scrolled .logo2 { display: block; }

顺便说一句:看来您的.header-sticky类属性应该是HTML内的header-sticky(前面没有点)。

答案 1 :(得分:0)

您可以通过按元素的相应类来定位元素,从而在元素上使用css来 String[][] parameters = eq(new String[][] { new String[]{ "provider", "myProvider" } });

请参见下面的工作示例:

display
const changeClass = function() {
  let elem = document.getElementsByClassName('header-sticky')[0].className = "header-scrolled";
}
.header-sticky .logo1 {
  display: block;
}

.header-sticky .logo2 {
  display: none;
}

/* When header-sticky changes to header-scrolled change the displays arround */

.header-scrolled .logo1 {
  display: none;
}

.header-scrolled .logo2 {
  display: block;
}