我正尝试通过javascript动画化点击时发生的变化,理想情况下,我的项目不需要重构很多。
代码结构如下:
#container {
display: grid;
width: 100%;
height: 100vh;
grid-template-columns: 1fr 2fr 1fr;
transition: .5s;
}
#sidebar {
background-color: red;
opacity: 0.5;
height: 100%;
border: 1px solid black;
grid-column-start: 1;
grid-column-end: 2;
}
#content {
background-color: blue;
border: 1px solid black;
grid-column-start: 1;
grid-column-end: 4;
transition: .5s
}
<div id="container">
<div id="sidebar"></div>
<div id="content">
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
</div>
</div>
当侧边栏打开时,我的#content
div通过将grid-column-start
更改为2
而缩小。
给任何元素添加一个CSS过渡似乎都不起作用。我的问题是,有没有一种方法可以在不重新考虑HTML和/或CSS的情况下将其动画化?
我也曾尝试过用0 fr列(as demonstrated here)来动画侧边栏,但这并不适用于我的侧边栏元素,因为出于布局的原因,它目前被构建为包含在网格行中的弹出框。
1条答案
按热度按时间yacmzcpb1#
“content”div使用transition和Javascript缩小宽度。宽度动画不适用于“grid column”属性。