ngOnInit 忽略 CSS 转换
ngOnInit ignores CSS transition
我有 div,我希望使用 CSS 转换 属性 使其宽度在 3 秒的间隔内从 0 增加到 100。当我在 Chrome 开发人员工具中更改此 属性 时,它在 3 秒的持续时间内从 0-100 很好地增长。但是,如果我从组件的 ngOnInit()
应用样式,它是即时的。我做错了什么吗?
编辑:我确实自己解决了这个问题,但是一个能解释为什么它有效的答案会很棒。
Component.ts:
@Component({
selector: 'notFound',
templateUrl: 'app/notFound.component/notFound.component.html',
directives: [ROUTER_DIRECTIVES]
})
export class NotFoundComponent {
ngOnInit() {
(<HTMLElement>document.querySelector('.determinate')).style.width = "100%";
}
}
Component.html:
<div class="wrapper">
<i class="material-icons error">error_outline</i>
<div class="not-found-text"> No such page 'round here.</div>
<a [routerLink]="['Menu']" class="waves-effect waves-light btn blue">
<i class="material-icons">home</i>
<!--home-->
</a>
<div class="progress">
<div class="determinate"></div>
</div>
</div>
<style>
.progress {
margin-top: 30px;
background: white;
}
.determinate {
width: 0%;
background: #2196F3;
transition: width 3s ease-in-out;
}
</style>
我通过将调用包装在 0 毫秒 setTimeout
中解决了这个问题。真是惊喜。
ngOnInit() {
setTimeout(function () {
(<HTMLElement>document.querySelector('.determinate')).style.width = "100%";
}, 0);
}
我有 div,我希望使用 CSS 转换 属性 使其宽度在 3 秒的间隔内从 0 增加到 100。当我在 Chrome 开发人员工具中更改此 属性 时,它在 3 秒的持续时间内从 0-100 很好地增长。但是,如果我从组件的 ngOnInit()
应用样式,它是即时的。我做错了什么吗?
编辑:我确实自己解决了这个问题,但是一个能解释为什么它有效的答案会很棒。
Component.ts:
@Component({
selector: 'notFound',
templateUrl: 'app/notFound.component/notFound.component.html',
directives: [ROUTER_DIRECTIVES]
})
export class NotFoundComponent {
ngOnInit() {
(<HTMLElement>document.querySelector('.determinate')).style.width = "100%";
}
}
Component.html:
<div class="wrapper">
<i class="material-icons error">error_outline</i>
<div class="not-found-text"> No such page 'round here.</div>
<a [routerLink]="['Menu']" class="waves-effect waves-light btn blue">
<i class="material-icons">home</i>
<!--home-->
</a>
<div class="progress">
<div class="determinate"></div>
</div>
</div>
<style>
.progress {
margin-top: 30px;
background: white;
}
.determinate {
width: 0%;
background: #2196F3;
transition: width 3s ease-in-out;
}
</style>
我通过将调用包装在 0 毫秒 setTimeout
中解决了这个问题。真是惊喜。
ngOnInit() {
setTimeout(function () {
(<HTMLElement>document.querySelector('.determinate')).style.width = "100%";
}, 0);
}