CSS 背景颜色过渡不适用于其他过渡
CSS background-color transition is not working with other transitions
我有一个元素,当用户点击它时,它会在两个 类 之间切换。 类 之间变化的两个属性是边距和背景颜色。
当我只向一个元素添加过渡效果时,过渡效果很好,但是当我同时使用两种过渡效果时,背景色效果不佳。我尝试为每个 属性 进行单独的转换,并将两个属性组合在一个转换中,但我无法让它工作。当我禁用边距过渡时,背景颜色过渡工作正常,但是一旦我再次启用边距过渡,背景颜色过渡就停止工作。
这是我的 CSS:
.switch_Active {
background-color: $not_selected;
-webkit-transition: background-color 5000ms;
-moz-transition: background-color 5000ms;
-o-transition: background-color 5000ms;
transition: background-color 5000ms;
border-radius: 50%;
height: 20px;
margin-left: 45%;
transition: margin-left 0.5s ease;
width: 20px;
}
.switch {
background-color: $selected;
-webkit-transition: background-color 5000ms;
-moz-transition: background-color 5000ms;
-o-transition: background-color 5000ms;
transition: background-color 5000ms;
border-radius: 50%;
height: 20px;
margin-left: 50%;
transition: margin-left 0.5s ease;
width: 20px;
}
我尝试在线查找,但找不到任何转换限制。我很感激我能得到的任何帮助。
您可以组合转换:
transition: background-color 5000ms, margin-left 0.5s ease;
如果您有 2 个相同的属性,它们将被覆盖。另请注意,没有必要为 2 类 提供相同的过渡,除非您希望在活动和非活动之间进行不同的过渡。
为避免重写,请使用它。因为 CSS 基本上会采用最后定义的 属性.
.switch_Active {
background-color: $not_selected;
-webkit-transition: background-color 5000ms, margin-left 0.5s ease;
-moz-transition: background-color 5000ms, margin-left 0.5s ease;
-o-transition: background-color 5000ms, margin-left 0.5s ease;
transition: background-color 5000ms, margin-left 0.5s ease;
border-radius: 50%;
height: 20px;
margin-left: 45%;
width: 20px;
}
.switch {
background-color: $selected;
-webkit-transition: background-color 5000ms, margin-left 0.5s ease;;
-moz-transition: background-color 5000ms, margin-left 0.5s ease;;
-o-transition: background-color 5000ms, margin-left 0.5s ease;;
transition: background-color 5000ms, margin-left 0.5s ease;;
border-radius: 50%;
height: 20px;
margin-left: 50%;
width: 20px;
}
或者只是他们这样:
.switch_Active {
background-color: $not_selected;
-webkit-transition: background-color, margin-left 0.5s ease;
-moz-transition: background-color, margin-left 0.5s ease;
-o-transition: background-color, margin-left 0.5s ease;
transition: background-color, margin-left 0.5s ease;
border-radius: 50%;
height: 20px;
margin-left: 45%;
width: 20px;
}
.switch {
background-color: $selected;
-webkit-transition: background-color, margin-left 0.5s ease;;
-moz-transition: background-color, margin-left 0.5s ease;;
-o-transition: background-color, margin-left 0.5s ease;;
transition: background-color, margin-left 0.5s ease;;
border-radius: 50%;
height: 20px;
margin-left: 50%;
width: 20px;
}
我有一个元素,当用户点击它时,它会在两个 类 之间切换。 类 之间变化的两个属性是边距和背景颜色。
当我只向一个元素添加过渡效果时,过渡效果很好,但是当我同时使用两种过渡效果时,背景色效果不佳。我尝试为每个 属性 进行单独的转换,并将两个属性组合在一个转换中,但我无法让它工作。当我禁用边距过渡时,背景颜色过渡工作正常,但是一旦我再次启用边距过渡,背景颜色过渡就停止工作。
这是我的 CSS:
.switch_Active {
background-color: $not_selected;
-webkit-transition: background-color 5000ms;
-moz-transition: background-color 5000ms;
-o-transition: background-color 5000ms;
transition: background-color 5000ms;
border-radius: 50%;
height: 20px;
margin-left: 45%;
transition: margin-left 0.5s ease;
width: 20px;
}
.switch {
background-color: $selected;
-webkit-transition: background-color 5000ms;
-moz-transition: background-color 5000ms;
-o-transition: background-color 5000ms;
transition: background-color 5000ms;
border-radius: 50%;
height: 20px;
margin-left: 50%;
transition: margin-left 0.5s ease;
width: 20px;
}
我尝试在线查找,但找不到任何转换限制。我很感激我能得到的任何帮助。
您可以组合转换:
transition: background-color 5000ms, margin-left 0.5s ease;
如果您有 2 个相同的属性,它们将被覆盖。另请注意,没有必要为 2 类 提供相同的过渡,除非您希望在活动和非活动之间进行不同的过渡。
为避免重写,请使用它。因为 CSS 基本上会采用最后定义的 属性.
.switch_Active {
background-color: $not_selected;
-webkit-transition: background-color 5000ms, margin-left 0.5s ease;
-moz-transition: background-color 5000ms, margin-left 0.5s ease;
-o-transition: background-color 5000ms, margin-left 0.5s ease;
transition: background-color 5000ms, margin-left 0.5s ease;
border-radius: 50%;
height: 20px;
margin-left: 45%;
width: 20px;
}
.switch {
background-color: $selected;
-webkit-transition: background-color 5000ms, margin-left 0.5s ease;;
-moz-transition: background-color 5000ms, margin-left 0.5s ease;;
-o-transition: background-color 5000ms, margin-left 0.5s ease;;
transition: background-color 5000ms, margin-left 0.5s ease;;
border-radius: 50%;
height: 20px;
margin-left: 50%;
width: 20px;
}
或者只是他们这样:
.switch_Active {
background-color: $not_selected;
-webkit-transition: background-color, margin-left 0.5s ease;
-moz-transition: background-color, margin-left 0.5s ease;
-o-transition: background-color, margin-left 0.5s ease;
transition: background-color, margin-left 0.5s ease;
border-radius: 50%;
height: 20px;
margin-left: 45%;
width: 20px;
}
.switch {
background-color: $selected;
-webkit-transition: background-color, margin-left 0.5s ease;;
-moz-transition: background-color, margin-left 0.5s ease;;
-o-transition: background-color, margin-left 0.5s ease;;
transition: background-color, margin-left 0.5s ease;;
border-radius: 50%;
height: 20px;
margin-left: 50%;
width: 20px;
}