添加 class 和悬停效果的不同过渡延迟
Different transition delays for added class and hover effect
所以基本上我有四个 div 框,当通过 javascript 添加 class 时会出现这些框。它们以转换延迟出现,因此它们不会在添加 class 时同时到达。这是通过以下代码完成的:
&.active {
@for $i from 1 through 4 {
&:nth-last-child(#{$i}n) {
transition-delay: #{($i * 0.07) - 0.07}s;
opacity: 1.0;
}
}
&:hover {
transform: scale(1.20);
transition: all 0.2s ease-out;
}
}
因此,当添加 .active
class 时,div 会从 opacity: 0.0
变为 opacity: 1.0
,并带有 transition-delay
。这按预期工作。然而,当我做悬停效果时,这个延迟也出现在 individual divs 上。所以第一个hover很快,其他的就延迟等等
我不太确定如何解决这个问题。我可以以某种方式“删除”之后的转换延迟,或者...?
您似乎想阻止元素悬停时的延迟效果,您可以将 :not(:hover)
添加到添加 transition-delay
的原始选择器中。替换原来的选择器:
&:nth-last-child(#{$i}n)
与:
&:not(:hover):nth-last-child(#{$i}n)
所以基本上我有四个 div 框,当通过 javascript 添加 class 时会出现这些框。它们以转换延迟出现,因此它们不会在添加 class 时同时到达。这是通过以下代码完成的:
&.active {
@for $i from 1 through 4 {
&:nth-last-child(#{$i}n) {
transition-delay: #{($i * 0.07) - 0.07}s;
opacity: 1.0;
}
}
&:hover {
transform: scale(1.20);
transition: all 0.2s ease-out;
}
}
因此,当添加 .active
class 时,div 会从 opacity: 0.0
变为 opacity: 1.0
,并带有 transition-delay
。这按预期工作。然而,当我做悬停效果时,这个延迟也出现在 individual divs 上。所以第一个hover很快,其他的就延迟等等
我不太确定如何解决这个问题。我可以以某种方式“删除”之后的转换延迟,或者...?
您似乎想阻止元素悬停时的延迟效果,您可以将 :not(:hover)
添加到添加 transition-delay
的原始选择器中。替换原来的选择器:
&:nth-last-child(#{$i}n)
与:
&:not(:hover):nth-last-child(#{$i}n)