Javascript 使用css转换切换类

Javascript 使用css转换切换类,javascript,jquery,css,effect,Javascript,Jquery,Css,Effect,我用这个简单的js来切换一个类,如果这个div的滚动位置大于200。colorize类有一个转换:1s;属性,但效果仅在应用类时运行,而不是在移除状态下运行。我知道当js删除这个类时,就不再有转换了,所以我如何重构它,使其按我所希望的那样工作呢 $(".one").scroll(function() { let position = $(".one").scrollTop(); if (position > 200) { $(".two").toggleClass("col

我用这个简单的js来切换一个类,如果这个div的滚动位置大于200。colorize类有一个转换:1s;属性,但效果仅在应用类时运行,而不是在移除状态下运行。我知道当js删除这个类时,就不再有转换了,所以我如何重构它,使其按我所希望的那样工作呢

$(".one").scroll(function() {
  let position = $(".one").scrollTop();
  if (position > 200) {
    $(".two").toggleClass("colorize", true);
  } else {
    $(".two").toggleClass("colorize", false);
  }
});

.colorize {
   background-color: red;
   transition: 1s;
}

您正在
.colorize
类中声明转换。当您从元素中删除该类时,当然元素将不再应用这些指令

为了始终保持图元上的转换,必须在始终应用的选择器中应用该转换

只需创建以下内容:

.two {
   transition: 1s;
}
并且,将
colorize
类更改为:

.colorize {
   background-color: red;
}

您正在
.colorize
类中声明转换。当您从元素中删除该类时,当然元素将不再应用这些指令

为了始终保持图元上的转换,必须在始终应用的选择器中应用该转换

只需创建以下内容:

.two {
   transition: 1s;
}
并且,将
colorize
类更改为:

.colorize {
   background-color: red;
}

如果成功的话,还可以添加到
.two
@temaniaf的转换!不过,我敢打赌有一种更优雅的方法可以做到这一点。更优雅的方法是从
彩色化
中删除过渡,并将其仅保留在
两个
;)@萨满的“优雅”方式?嗯,是的,在一直适用的选择器内设置应该一直有效的指令。同时添加到
的转换。如果有效,两个
@temaniaf!不过,我敢打赌有一种更优雅的方法可以做到这一点。更优雅的方法是从
彩色化
中删除过渡,并将其仅保留在
两个
;)@萨满的“优雅”方式?嗯,是的,在选择器中设置应该一直有效的指令,这些选择器一直适用。对!-谢谢你的澄清:)@saman别忘了标记为“答案”。对谢谢你的澄清:)@saman别忘了标记为“答案”。