javascript - 在滚动条上淡化伪元素 - JS 或 jQuery

标签 javascript jquery css pseudo-element

我有一个伪元素,我想在滚动时淡入不透明度:0。我似乎无法理解如何去做。我在这里设置了一个codepen。 http://codepen.io/emilychews/pen/JWyaKr

通常我会使用 Greensock,但我不能在这个元素上使用。我还必须使用伪元素,而不是绝对定位的 div。淡入淡出需要在从顶部滚动 10px 后发生,然后在用户滚动回到顶部时返回(它是导航元素的一部分)

HTML

<div id="mydiv">My Div</div>

CSS

#mydiv {
    background: red;
    width: 10%;
}

#mydiv:after {
    content: '';
    position: absolute;
    height: 10%;
    width: 10%;
    top: 30px;
    background: black;
}

任何想法都会很棒。我感觉自己要么快哭了,要么沮丧地吃了一桶炸鸡。

艾米丽

最佳答案

为伪元素的opacity设置一个transition,并添加一个类到scroll上的主要元素,你在选择器中使用它来改变伪元素的不透明度.

var $mydiv = $('#mydiv');
$(window).scroll(function() {
  if ($(this).scrollTop() > 10) {
    $mydiv.addClass('fade');
  } else {
    $mydiv.removeClass('fade');
  }
})
body {
  height: 200vh;
}

#mydiv {
  background: red;
  width: 10%;
}

#mydiv:after {
  content: '';
  position: absolute;
  height: 10%;
  width: 10%;
  top: 30px;
  background: black;
  transition: opacity .25s;
}

#mydiv.fade:after {
  opacity: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="mydiv">My Div</div>

关于javascript - 在滚动条上淡化伪元素 - JS 或 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42799048/

相关文章:

javascript - 从 JQUERY Keydown 事件注销

css - 无法在 MAMP 本地主机中呈现 CSS

javascript - 在 html 代码中使用 Bootstrap 的浏览器中未显示 Glyphicons?

javascript - 变量php mysql的onclick事件警报值

javascript - ajax:本地服务器没有数据

javascript - fs.writeFile() 只保存部分字符串

javascript - jQuery 删除第二类

javascript - 使用 jQuery 获取 2 个下拉菜单项的选定值

javascript - 检查 jQuery 中的类是否存在 DIV 元素

jquery.ui.resizeable.js 不包含文本,如果太多而无法放入容器