html - 动画自建栏
问题描述
我正在显示一个条形图 (div),它显示了您的健康饮食和运动水平。它的值从 0 到 100%。在页面重新加载 javascript 让 div 从 0% 增长到达到的水平,例如 70%。但它看起来真的停滞不前,它并没有以一致的方式流畅地增长。你有什么提示可以解决这个问题吗?obj.aktivitaetIndex3Tage
携带值,balkenAktivitaet
是按长度显示值的 div。一切都很好,只是看起来很差,因为它没有流畅地生长。
非常感谢。
<div style="padding: 0px 0px 15px 10px;color:white;font-size:16px;font-weight:400">
AKTIVITÄT
</div>
<div style="margin: 0px auto 15px auto;display:flex;flex-wrap:nowrap;">
<div style="margin:0px;width:80%;height:26px;background-color: #326a68;display:flex;flex-wrap:nowrap;border:1px solid #001c1a;box-shadow:1px 1px 1px #002321;border-radius:5px;">
<div id="balkenAktivitaet" style="margin:0px;background-color: #F9BC60;height:26px;width:0%;border-radius:5px 5px 5px 5px;box-shadow:1px 0px #001c1a;"></div>
</div>
<div id="aktivitaetsIndex3Tage" class="indexProzentzahl" style="margin:0% 0% 0% 2%;color:#F9BC60;font-size:26px;font-weight:400;"></div>
</div>
var i = 0;
var inv = setInterval(function aktivitaet() {
if (i < obj.aktivitaetIndex3Tage && i <= 100) {
document.getElementById("balkenAktivitaet").style.width = parseInt(i = i + 2) + "%";
}
}, 50);
解决方案
您可以一次将 div 的宽度设置为所需的百分比,同时将过渡添加到其 css - 例如:
CSS:
#balkenAktivitaet {
transition: width 2s ease;
width: 0%;
}
JS:
document.getElementById("balkenAktivitaet").style.width = obj.aktivitaetIndex3Tage + '%';
示例 Codepen:https ://codepen.io/furiosys/pen/PobvpKa
推荐阅读
- java - 如何删除 dankito/RichTextEditor for Android 中的工具栏按钮
- java - 对数组排序的 subArrayLeftShift 方法的最小调用(面试问题)
- c++ - 循环比较(优化)
- django - 如何在 django 管理面板中访问 Google Analytics?
- java - javax.validation.UnexpectedTypeException 使用 Spring ConstraintValidator 进行枚举
- performance - 如何将 SQL 查询中的 Row_number() 转换为 LINQ to Entities 查询
- node.js - 按照命令 npm i npm 更新节点时出错
- ios - 与名为 com.apple.commcenter.coretelephony.xpc 的服务的连接已失效
- amazon-web-services - AWS Lambda 错误没有名为“StringIO”的模块或没有名为“StringIO”的模块
- ios - 使用内置 iOS 日历以编程方式快速创建日历/访问