Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.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
Angular 使用角度动画向左显示或隐藏div_Angular_Dialog_Angular Animations - Fatal编程技术网

Angular 使用角度动画向左显示或隐藏div

Angular 使用角度动画向左显示或隐藏div,angular,dialog,angular-animations,Angular,Dialog,Angular Animations,我正在显示高度和宽度为600px的mat对话框 我在mat对话框中有一个按钮。当我点击按钮时,我想在不影响mat对话框的情况下,从mat对话框的左侧显示左滑动div 我怎样才能做到这一点?您可以通过两种方式做到这一点 使用角度动画 闪电战: Angular提供了一组方法来做一些很酷的事情。 在这个例子中,我写道: animations: [ trigger('widthGrow', [ state('closed', style({

我正在显示高度和宽度为600px的mat对话框

我在mat对话框中有一个按钮。当我点击按钮时,我想在不影响mat对话框的情况下,从mat对话框的左侧显示左滑动div


我怎样才能做到这一点?

您可以通过两种方式做到这一点

使用角度动画

闪电战:

Angular提供了一组方法来做一些很酷的事情。 在这个例子中,我写道:

animations: [
        trigger('widthGrow', [
            state('closed', style({
                width: 0,
            })),
            state('open', style({
                width: 400
            })),
            transition('* => *', animate(150))
        ]),
    ]
触发器->我们要在html中注册和使用的触发器的名称

状态->我们将使用两种状态来更改div

style->我们希望根据逻辑更改的css属性

transition->一个简单的计时器,可以为div的增长设置动画

如果你打开stackblitz,你会看到它是如何工作的。我使用了另一个div来触发一个名为changeState的函数来更改属性来设置动画

仅使用css

闪电战:

使用
transition
(源自css)和
ngClass
可以实现同样的效果

因为这只是基本代码,所以我将css类放在这里:

.left-stuff {
  height: 50px;
  border: 1px solid black;
  transition: all 0.2s ease-in-out;
  background-color: red;
}

如果您需要更多帮助,请随意评论此答案。

您可以通过两种方式完成此操作

使用角度动画

闪电战:

Angular提供了一组方法来做一些很酷的事情。 在这个例子中,我写道:

animations: [
        trigger('widthGrow', [
            state('closed', style({
                width: 0,
            })),
            state('open', style({
                width: 400
            })),
            transition('* => *', animate(150))
        ]),
    ]
触发器->我们要在html中注册和使用的触发器的名称

状态->我们将使用两种状态来更改div

style->我们希望根据逻辑更改的css属性

transition->一个简单的计时器,可以为div的增长设置动画

如果你打开stackblitz,你会看到它是如何工作的。我使用了另一个div来触发一个名为changeState的函数来更改属性来设置动画

仅使用css

闪电战:

使用
transition
(源自css)和
ngClass
可以实现同样的效果

因为这只是基本代码,所以我将css类放在这里:

.left-stuff {
  height: 50px;
  border: 1px solid black;
  transition: all 0.2s ease-in-out;
  background-color: red;
}

如果您需要更多帮助,请随意评论此答案。

您可以创建stackblitz吗?您想要stackblitz做什么?您可以创建stackblitz吗?您想要stackblitz做什么?我尝试了您的第一个stackblitz并更改了宽度。出于某种原因,它的行为很奇怪。尝试50宽度,甚至在动画中将150替换为50,并尝试使用以下设置:宽度=50;changeState():void{(this.width==50)?this.width=150:this.width=50;}并且工作正常。我错过什么了吗?我试过你的第一次stackblitz并改变了宽度。出于某种原因,它的行为很奇怪。尝试50宽度,甚至在动画中将150替换为50,并尝试使用以下设置:宽度=50;changeState():void{(this.width==50)?this.width=150:this.width=50;}并且工作正常。我错过什么了吗?