javascript - Webkit 关键帧:使用 JavaScript 或其他计算翻译量
问题描述
它所做的只是在显示屏打开li
时从左侧插入一个具有滑动效果的新元素和。ul
flex
inline-block
与此类似的是有人加入时的 Stackoverflow 聊天头像。
@-webkit-keyframes enter {
0% { /*opacity:0;*/ -webkit-transform: translateX(-100%); }
100% { /*opacity:1;*/ -webkit-transform: translateX(0px); }
}
@-webkit-keyframes moves {
0% { /*opacity:0;*/ -webkit-transform: translateX(-50px); }
100% { /*opacity:1;*/ -webkit-transform: translateX(0px); }
}
在我的enter
动画中,我从翻译开始,-100%
因为我希望我的项目来自左边距离他的大小。
在moves
动画中,我想将整体ul
向右移动,按输入元素的大小。
现在我将其设置为硬编码,50px
因为我的元素设置为50px
:
li {
width: 50px;
height: 50px;
display: inline-block;
background-color: red;
}
我怎样才能让它自动计算宽度或高度,翻译多少ul
?
示例: 自动计算这些 50px
解决方案
您可以通过使用负边距仅对添加的元素进行动画处理来做到这一点:
setTimeout(() => {
var item = $("<li></li>").addClass("enter");
$("ul").prepend(item).addClass('move');
}, 2000);
ul {
display: flex;
transition-timing-function: ease-out;
transition: all .2s;
}
li {
--h:50px;
width: 50px;
height: var(--h);
display: inline-block;
background-color: red;
}
.enter {
animation: enter 1s;
}
@keyframes enter {
0% {
transform: translateX(-100%);
margin-left: calc(var(--h) * -1);
}
100% {
transform: translateX(0px);
margin-left: 0
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="my-flex-thing">a</li>
<li class="my-flex-thing">b</li>
</ul>
推荐阅读
- swiftui - 自 Xcode 13 / iOS15 以来,获取“公共数据库中不允许自定义区域”
- javascript - 从 MongoDB 中的一个文档中获取基于另一个文档的属性的结果
- android - msfconsole 在任何源中都找不到 nokogiri-1.8.0
- python - 抽五张牌获得红桃 A 和黑桃 A 的概率
- amazon-web-services - 未找到主要源和源版本的子模块错误存储库
- exception - Jasypt BasicTextEncryptor 解密不起作用
- python - Python - 异常处理
- django - Django makemessages 使用 django-admin 和 manage.py 都失败
- azure-web-app-service - Azure Front Door Visual Studio 远程调试
- mysql - 如何在聚合sequelize中使用include