以下是使用Angular 17实现在向左/向右滑动时同步双侧动画的示例代码:
在组件的HTML模板中,使用Angular的动画功能来定义滑动动画,并应用到左侧和右侧的元素上:
在组件的CSS样式中,定义左侧和右侧元素的样式,并为其添加过渡效果:
.container {
display: flex;
justify-content: space-between;
width: 400px;
height: 200px;
}
.left, .right {
width: 50%;
height: 100%;
transition: transform 0.5s;
}
.left {
background-color: red;
}
.right {
background-color: blue;
}
在组件的TypeScript代码中,定义动画触发时的状态和动画触发函数:
import { Component } from '@angular/core';
import { trigger, state, style, animate, transition } from '@angular/animations';
@Component({
selector: 'app-slide-animation',
templateUrl: './slide-animation.component.html',
styleUrls: ['./slide-animation.component.css'],
animations: [
trigger('slideAnimation', [
state('left', style({ transform: 'translateX(-100%)' })),
state('right', style({ transform: 'translateX(100%)' })),
transition('* => left', animate('500ms')),
transition('* => right', animate('500ms')),
])
]
})
export class SlideAnimationComponent {
leftState = 'left';
rightState = 'right';
slideToLeft() {
this.leftState = 'left';
this.rightState = 'right';
}
slideToRight() {
this.leftState = 'right';
this.rightState = 'left';
}
}
在组件的方法中,根据滑动方向更新左侧和右侧元素的动画状态,从而实现滑动时的同步动画效果。
最后,将组件添加到所需的其他模块中,并在需要的地方调用slideToLeft()
或slideToRight()
来触发滑动动画。
希望以上示例能帮助到您!