Angular 使用DOM对象实现CSS3侧边栏动画

本文介绍如何使用Angular CLI创建带有CSS3动画效果的侧边栏组件。通过原生JS操作DOM实现侧边栏的展开与隐藏,配合CSS3的transform和transition属性,达到平滑的动画效果。

首先我们使用Angular CLI创建一个组件【aside】, 创建命令如下:

ng generate component components/aside

接下来我们在创建好的组件【aside.component.html】编写如下代码:

<section>
    <h3>DOM操作CSS3页面动画</h3>
    <aside id="aside">
        我是侧边栏
    </aside>
    <button (click)="showAside()">展开</button> &nbsp;
    <button (click)="hideAside()">隐藏</button>
</section>

开始编写样式,分别在组件【aside.component.css】和 ng 框架全局样式【styles.css】文件中编写如下css:

//1.组件【aside.component.css】样式
#aside{
    width: 200px;
    height: 100%;
    position: absolute; /* 绝对定位 */
    background-color: #000;
    color: #fff;
    right: 0px;
    top: 0px;
    transform: translate(100%,0); /*css3: 动画,X轴100%隐藏,Y轴不变 */
    transition: all 1s; /* 动画显示过度1s */
}
//2.ng 框架全局样式【styles.css】
body{
    width: 100%;
    overflow: hidden; /* 让底部下边框滚动条超出部分影藏 */
}

最后我们在组件【aside.component.ts】中编写页面按钮【展开】和【影藏】的点击事件:

//显示
showAside():void{
  //原生js获取dom节点
  var asideDom:any = document.getElementById('aside');
  asideDom.style.transform = 'translate(0,0)';
  //asideDom.style.setProperty('transform','translate(0,0)'); //等效代码
}

//影藏
hideAside():void{
  //原生js获取dom节点
  var asideDom:any = document.getElementById('aside');
  asideDom.style.transform = 'translate(100%,0)';
  //asideDom.style.setProperty('transform','translate(100%,0)'); //等效代码
}

以上就完成一个简单的侧边栏动画效果(默认影藏),演示效果如下:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChaITSimpleLove

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值