提问人:Stefan Steiger 提问时间:10/24/2023 更新时间:10/24/2023 访问量:26
为什么在带有 checked 的类上设置转换完全没有效果?
Why does setting a transition on a class with checked have absolutely no effect?
问:
我尝试创建无 JavaScript 的选项卡。
这奏效了,但现在我想像在 https://web.dev/articles/building/a-tabs-component 上一样进行 CSS 过渡
在那里,它做到了
scroll-behavior: smooth;
我只想以不透明的方式淡入和淡出选项卡。
但这行不通,我不知道为什么。
怎么了?
我不太明白为什么这不起作用,因此,我无法修复它。
我尝试在不透明度、显示、有或没有易进/不移出时设置过渡,它根本没有改变......
我也试过了,但也没有效果。scroll-behavior: smooth;
有关完整示例,请参阅我的 codepen 代码段:https://codepen.io/u155077/pen/oNmgLgM
注意:
这是关于CSS样式的。
请保持它 100% 没有 JavaScript。
.rbTab
{
display: none;
opacity: 0;
transition: opacity 5s, display 1s;
}
.ContentTab
{
display: none;
width: 630px;
height: 180px;
background-color: #FFFFFF;
}
.TitleTab
{
width: 630px;
overflow-x: auto;
display: block;
white-space: nowrap;
/*background-color: #E5E5E5;*/
}
.rbTab
{
display: none;
opacity: 0;
}
.rbTab1:checked ~ .ContentTab1
{
display: block;
opacity: 1;
-webkit-transition: display 2s ease-in;
-moz-transition: display 2s ease-in;
-o-transition: display 2s ease-in;
transition: display 2s ease-in;
}
.rbTab2:checked ~ .ContentTab2
{
display: block;
opacity: 1;
-webkit-transition: display 2s ease-in;
-moz-transition: display 2s ease-in;
-o-transition: display 2s ease-in;
transition: display 2s ease-in;
}
.rbTab3:checked ~ .ContentTab3
{
display: block;
opacity: 1;
}
.rbTab4:checked ~ .ContentTab4
{
display: block;
opacity: 1;
}
.rbTab5:checked ~ .ContentTab5
{
display: block;
opacity: 1;
}
.rbTab6:checked ~ .ContentTab6
{
display: block;
opacity: 1;
}
答:
1赞
untbu
10/24/2023
#1
当元素的位置不同时,您无法按照所需的方式对元素的不透明度进行动画处理。您正在做的就像删除旧元素并添加新元素一样。
您可以将所有 Tab 放在一个 div 容器中,设置容器的大小,将选项卡更改为 ,从类中删除并将过渡添加到类中。position: absolute;
display: none;
ContentTab
ContentTab
我修改了你的例子:https://codepen.io/untbu/pen/zYexoGv
评论