当前位置: 首页 > news >正文

数字增加变化到目标数值动画,js实现

 

html 

    <div id="sup6"><div class="top-title"><div class="title">服务规模</div><p class="text">SCALE OF SERVICE</p></div><div class="list flex-cc wrap w1400"><div class="li"><div class="num"><span>10000</span>+</div><div class="text">付费用户</div></div><div class="li"><div class="num"><span>5000</span>+</div><div class="text">科研视频课程</div></div><div class="li"><div class="num"><span>40</span>+</div><div class="text">行业资质认证</div></div><div class="li"><div class="num"><span>1000</span>+</div><div class="text">高校院所</div></div><div class="li"><div class="num"><span>50</span>+</div><div class="text">技术工程师</div></div><div class="li"><div class="num"><span>200</span>+</div><div class="text">科研应用软件</div></div><div class="li"><div class="num"><span>30</span>万核+</div><div class="text">自建算力资源</div></div><div class="li"><div class="num"><span>500</span>+</div><div class="text">企业用户</div></div></div></div>

css 

  #sup6 {height: 689px;background: url("/assets/image/supercomputing/supercomputing2.png")no-repeat;background-size: 100% 100%;.list {gap: 40px 100px;padding: 0px 50px;.li {background: url("/assets/image/supercomputing/box.png") no-repeat;background-size: 100% auto;width: 200px;height: 200px;text-align: center;position: relative;&:nth-child(2n) {transform: translateY(20px);}&::before {content: "";position: absolute;bottom: -20px;left: 50%;transform: translateX(-50%);width: 91px;height: 8px;background: #a8daf5;border-radius: 50%;filter: blur(.5rem);}.num {font-size: 40px;font-weight: bold;color: #c4302c;margin-top: 60px;}.text {font-size: 20px;font-weight: 500;color: #606266;}}}}

jq 

  // 动画效果只执行一次let isAnimated = true;// 滚动监听$(window).scroll(function () {// 服务规模数字变化if ($(this).scrollTop() >= 3800 &&window.location.pathname == "/page/supercomputing.html" &&isAnimated) {isAnimated = false;const $spans = $("#sup6 .list .li .num span");let duration = 2000; // 动画持续时间(毫秒)$spans.each(function () {let $span = $(this);let target = parseInt($span.text()); // 获取页面目标值$span.text(0); // 初始显示为 0let startTime = null;function animate(timestamp) {if (!startTime) startTime = timestamp;let progress = timestamp - startTime;let percentage = Math.min(progress / duration, 1);let value = Math.floor(percentage * target);if (value > target) value = target;$span.text(value);if (progress < duration) {requestAnimationFrame(animate);}}requestAnimationFrame(animate);});}});

 

 

http://www.dtcms.com/a/297439.html

相关文章:

  • react+threejs实现自适应分屏查看/3D场景对比功能/双场景对比查看器
  • GitHub git push 推送大文件
  • Linux: network: wireshark: tcp的segment重组是怎么判断出来的
  • Git下载与安装全攻略
  • reflections:Java非常好用的反射工具包
  • SEC_FirePower 第二天作业
  • 【深度学习新浪潮】Claude code是什么样的一款产品?
  • Keepalived 原理及配置(高可用)
  • 校园二手交易小程序的设计与实现
  • 局域网 IP地址
  • mid360连接机载电脑,远程桌面连接不上的情况
  • 智慧校园(智能出入口控制系统,考勤,消费机,电子班牌等)标准化学校建设,加速业务规模发展,满足学校、家长及学生对智能化、便捷化校园管理的需求清单如下
  • 三骏破局AI时代:电科金仓以“马背智慧”重定义数据库一体机
  • 从数据脱敏到SHAP解释:用Streamlit+XGBoost构建可复现的川崎病诊断系统
  • 12. isaacsim4.2教程-ROS 导航
  • 剖析 Web3 与传统网络模型的安全框架
  • IAR编辑器如何让左侧的工具栏显示出来?
  • Spring之【Bean后置处理器】
  • ELK Stack技术栈
  • 编译器-gcc/g++和自动化构建-make/Makefile
  • 软件工程:软件需求
  • Maximator增压器DLE 5-1-GG Artikelnr.1000015617
  • 走入Linux的世界:编辑器Vim
  • WPF高级学习(一)
  • 仙人掌cacti中的RCE案例
  • 虚拟直线阈值告警人员计数算法暑期应用
  • VoWiFi技术深度解析:架构、流程与演进
  • Oracle MCP本地部署测试
  • Oracle数据块8KB、OS默认认块管理4KB,是否需调整大小为一致?
  • CSS3新特性深度解析:Position Sticky粘性定位完整指南