求Facebook帮助标签高度增长CSS动画代码,现有代码失效
搞定Facebook式帮助框的高度增长动画
嘿,我来帮你排查下代码里的问题,让这个动画正常跑起来!
先说说你代码里的几个小问题
- 语法小错误:你写的
height: calc(100% - 45px);;多了一个分号,浏览器解析样式的时候会出问题,这是第一个坑。 - 初始高度冲突:你给
.slidingbox默认设置了height: calc(100% - 45px),这直接覆盖了动画里的初始height:0,动画根本没法从0开始增长,自然看不到效果。 - 内容提前泄露:没加
overflow:hidden的话,盒子里的内容会在动画开始前就露出来,完全破坏了展开的感觉。
修正后的完整代码
我调整了代码,更贴近Facebook原生的动画效果,你可以直接用:
/* 默认状态:高度为0,把内容藏起来 */ .slidingbox { position: fixed; top: 45px; left: 60px; width: calc(100% - 60px); height: 0; /* 初始高度设为0,动画从这里启动 */ z-index: 1000; background-color: white; overflow: hidden; /* 防止内容提前显示 */ animation: slideDown 0.3s ease-out forwards; /* 用ease-out实现先快后慢的自然效果,forwards让动画结束后保持最终状态 */ } /* 动画关键帧:从0高度过渡到目标高度 */ @keyframes slideDown { from { height: 0; } to { height: calc(100% - 45px); /* 你想要的最终高度 */ } }
额外小提示
- 我把动画时长改成了0.3秒,搭配
ease-out缓动,和Facebook的原生动画节奏更像。 - 如果需要通过快捷键(比如shift+?)触发动画,可以用JS给元素添加这个类,或者控制
animation-play-state来启停动画。
内容的提问来源于stack exchange,提问作者Shiva Sai
相关产品推荐
相关产品推荐

