Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用angular BrowserAnimationsModule设置网格框更改的动画?_Javascript_Css_Angular_Animation - Fatal编程技术网

Javascript 如何使用angular BrowserAnimationsModule设置网格框更改的动画?

Javascript 如何使用angular BrowserAnimationsModule设置网格框更改的动画?,javascript,css,angular,animation,Javascript,Css,Angular,Animation,为了描述我的问题,我将从根开始解释我正在尝试做什么,以及为什么我决定使用网格框,让我们从两个线框开始: 我的布局由两个容器组成;身体和侧边栏。不要认为这是整个网站,这只是一个组成部分 侧边栏包含两个元素,notes和chat Notes&chat元素可以是小尺寸的,但一旦它是小尺寸的,左主体容器的第二部分就会变宽,并占据边栏在其底部空间的位置,如下面的示例所示: 因此,在研究了一点之后,我找不到任何其他解决方案,除了为第二个需要变宽的数据部分使用两个不同的组件,或者只使用一个网格框,但是,我

为了描述我的问题,我将从根开始解释我正在尝试做什么,以及为什么我决定使用网格框,让我们从两个线框开始:

我的布局由两个容器组成;身体和侧边栏。不要认为这是整个网站,这只是一个组成部分

侧边栏包含两个元素,notes和chat

Notes&chat元素可以是小尺寸的,但一旦它是小尺寸的,左主体容器的第二部分就会变宽,并占据边栏在其底部空间的位置,如下面的示例所示:

因此,在研究了一点之后,我找不到任何其他解决方案,除了为第二个需要变宽的数据部分使用两个不同的组件,或者只使用一个网格框,但是,我必须为侧栏和数据的第二部分设置动画,使其具有宽度变化的过渡

我使用Grid Box创建了一个角度POC示例,以实现我在没有动画的情况下所需的效果:


通过向我的
.container
中添加
.closed
类(如示例POC中的
.container
),是否可以使用grid box实现此动画?

有一个仅CSS的解决方案可以帮助您

在代码段中,将容器悬停以使底部div展开

诀窍是使用一个3列的栅格,以及一个可以增长/收缩的辅助元素:

在生产中,技巧元素的高度为0,并且不可见

.container{
显示:网格;
边框:实心1px红色;
网格模板列:1fr自动;
网格模板行:100px 100px 10px;
过渡:所有3s;
宽度:500px;
}
#对{
背景颜色:黄色;
宽度:200px;
格构柱:2/2跨;
}
#底部{
背景颜色:浅绿色;
格构柱:跨度2;
}
#诡计{
背景色:番茄;
网格柱:2/3;
宽度:0px;
过渡:宽度3s;
}
.container:悬停#技巧{
宽度:200px;
}

L
R
B
T

我们的想法是使用angular提供的动画。因此,您需要在app.module.ts中添加以下内容:

imports: 
[
     BrowserAnimationsModule,
     BrowserModule
]
将动画添加到该
@组件
中:

animations: [
   trigger('<animationName>' [<definitions>])
]    
[更新]

以上是抽象代码。关于详细代码,我附上我的stackblitz代码:

根据组件动画中的要求分别更改高度和宽度

<div [<@animationName>] = '<state-definitions-name>'></div>