首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Transition jQuery addClass和removeClass

Transition jQuery addClass和removeClass
EN

Stack Overflow用户
提问于 2016-09-18 20:09:43
回答 1查看 1.1K关注 0票数 1

当我悬停div时,我正试图在div上实现覆盖。基本上,我在mouseover上添加了一个类,在mouseleave上删除了这个类。问题是我不能进行转换,因为类的主要效果属于:after伪元素。实际上,我使用名为.img-target的placeholder类来定位div

CSS

代码语言:javascript
复制
.img-overlay{
height: 100%
width: 100%
transition: all 1s ease;
}

.img-overlay::after{
content:"";
    display: block;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background-color: rgba(0, 0, 0, .3);
    transition: all 1s ease;
}

jQuery

代码语言:javascript
复制
$(window).ready(function() {

$(".img-target").mouseover(function() {
    $(this).addClass('img-overlay',1000);

});

$(".img-target").mouseleave(function() {
    $(this).removeClass("img-overlay");

});
});

我已经尝试将转换应用到:after和.img-target,但似乎都不起作用。有什么想法吗?:)

另外,不幸的是,由于主题结构的原因,在伪元素之后使用实际上是覆盖div的唯一方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-18 20:21:41

您的问题是:after伪元素没有初始状态

代码语言:javascript
复制
$(window).ready(function() {
  $(".img-target").mouseover(function() {
    $(this).addClass('img-overlay', 1000);

  });

  $(".img-target").mouseleave(function() {
    $(this).removeClass("img-overlay");

  });
});
代码语言:javascript
复制
.img-target {
  position: relative;
  background-color: gold;
  height: 50px;
  width: 50px;
  transition: all 1s ease;
}
.img-target::after {
  content: "";
  display: block;
  transition: all 1s ease;
}
.img-overlay::after {
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  background-color: rgba(0, 0, 0, .3);
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="img-target"></div>

如果您仅在中使用jQuery进行鼠标和我们的检测,则可以使用CSS代替.img-target:hover::after {...}

代码语言:javascript
复制
.img-target {
  position: relative;
  background-color: gold;
  height: 50px;
  width: 50px;
  transition: all 1s ease;
}
.img-target::after {
  content: "";
  display: block;
  transition: all 1s ease;
}
.img-target:hover::after {
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  background-color: rgba(0, 0, 0, .3);
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="img-target"></div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39557497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档