javascript - 新创建的伪元素上的 CSS Transition

标签 javascript css

我想在伪元素上创建淡入淡出效果,但遇到困难,因为我无法在该元素上使用 javascript。

我有一个类似于我在这里尝试做的事情的例子,但我无法让元素淡入,因为在创建元素时过渡似乎不起作用。

https://codepen.io/anon/pen/wrxPXJ

.hoverhere.dim::before {
    content: '\A';
    position: absolute;
    width: 100%; 
    height:100%;
    top:0; 
    left:0;
    background:rgba(0,0,0,0.8);
    opacity: 1;
    transition: opacity 1s;
 }

我正在向 div 添加一个类,以便在与上述 css 匹配后创建伪元素,但是无法确定如何为其设置动画。

如果没有像下面这样的伪元素,我可能可以让它工作:

https://codepen.io/anon/pen/Oxwzvv

但是想知道是否有一种方法可以不更改我的标记以包含一个空的 div。

最佳答案

我猜你是说你想要这个?

$('.hoverhere')
  .mouseenter(function() { $(this).addClass('dim'); })
  .mouseleave(function() { $(this).removeClass('dim'); });
.hoverhere {
  width: 100%;
  height: 40px;
  background: red;
  color: white;
  text-align: center;
}

.hoverhere::before {
  content: '\A';
  position: absolute;
  width: 20%;
  height: 100%;
  top: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.8);
  opacity: 0;
  visibility: hidden;
  transition: all 1s ease-out;
}

.hoverhere.dim::before {
  opacity: 1;
  visibility: visible;
  transition: opacity 1s ease-out;
}
<script src="https://code.jquery.com/jquery-2.2.4.js"></script>
<p>RANDOM TEXT HERE</p>
<div class="hoverhere">HOVER ON ME</div>
<p>MORE RANDOM TEXT HERE</p>

它需要的是为 opacity 建立一个起点。


如果这只是为了悬停,你根本不需要 JS。

.hoverhere {
  width: 100%;
  height: 40px;
  background: red;
  color: white;
  text-align: center;
}

.hoverhere::before {
  content: '\A';
  position: absolute;
  width: 20%;
  height: 100%;
  top: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.8);
  opacity: 0;
  visibility: hidden;
  transition: all 1s ease-out;
}

.hoverhere:hover::before {
  opacity: 1;
  visibility: visible;
  transition: opacity 1s ease-out;
}
<p>RANDOM TEXT HERE</p>
<div class="hoverhere">HOVER ON ME</div>
<p>MORE RANDOM TEXT HERE</p>

关于javascript - 新创建的伪元素上的 CSS Transition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46711754/

相关文章:

css - 如何在父元素悬停时更改子元素的背景?

html - 使用 flex 垂直和水平居中时从跨度中删除下划线

javascript - 如何检索 HTML "style"元素?

html - Bootstrap 4 表单格式化

javascript - 谷歌街景/ map API

javascript - 从页面中删除 Canvas 并用简单的文本消息替换它

html - 删除一个 div 或一个类会影响另一个 div

javascript - 想要使用 document.getelementbyid 显示两个变量

javascript - 字符串编码器固定大小输出

javascript - Swiper - 初始化时宽度错误,调整大小后宽度正确