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

基于HTML、CSS和JavaScript的滚动数字显示效果,类似于老式计数器或电子表上的数字滚动效果

这段代码实现了一个基于HTML、CSS和JavaScript的滚动数字显示效果,类似于老式计数器或电子表上的数字滚动效果。以下是代码的详细解释说明:

HTML结构

  1. 基础设置
    • <!DOCTYPE html> 声明文档类型为HTML5。
    • <html lang="en"> 指定文档语言为英文。
    • <meta charset="UTF-8"> 和 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 设置字符编码和视口,确保页面在各种设备上正确显示。
  2. 主体结构
    • <div class="container"> 包含整个数字滚动效果的容器。
    • <button> 一个按钮,用于生成11位随机数字。
    • <input type="text" id="input" placeholder="请输入金额"> 一个输入框,用于手动输入金额。
    • <div class="amount"> 包含多个数字滚动器的容器。
      • 每个数字滚动器由 <div id="counter" class="animated"> 和内部的 <ul class="digits column"> 组成,<ul> 包含从0到9的数字<li>项。

CSS样式

  1. 全局样式
    • * { padding: 0; margin: 0; box-sizing: border-box; } 清除所有元素的默认边距和填充,设置边框盒模型。
    • body { font-size: 50px; height: 100vh; display: grid; place-items: center; background: #0e141b; } 设置页面背景色,使用网格布局将内容居中。
  2. 容器和按钮样式
    • .container button 设置按钮的样式,包括填充、字体大小等。
    • #input 设置输入框的样式。
  3. 数字滚动器样式
    • .amount 设置数字滚动器容器的样式。
    • .digits 设置数字列表的样式,包括颜色、行高等。
    • .column 为数字列表设置动画效果。
    • .column li 设置每个数字项的最小高度。

JavaScript功能

  1. 变量初始化
    • const input = document.getElementById('input') 获取输入框元素。
    • const digits = document.querySelectorAll('.digits') 获取所有数字列表元素。
    • const counters = document.querySelectorAll('.animated') 获取所有动画容器元素。
    • const button = document.getElementsByTagName('button')[0] 获取按钮元素。
    • let size = 50, amount = '18'; 设置数字项的高度和初始金额。
  2. 事件绑定
    • input.onblur 当输入框失去焦点时,更新显示的金额。
    • button.onclick 当按钮被点击时,生成11位随机数字并更新显示的金额。
  3. 更新金额函数 updateAmount
    • 根据输入的金额或默认金额,更新每个数字滚动器的显示。
    • 使用 parseInt 解析每个数字,计算偏移量,并通过 transform: translateY() 设置滚动效果。
    • item.style.transitionDelay 设置每个数字项的动画延迟

http://www.kler.cn/news/325581.html

相关文章:

  • JAVA并发编程高级——JDK 新增的原子操作类 LongAdder
  • 渗透测试实战—教育攻防演练信息收集
  • Bugku 渗透测试1
  • 03. 前端面试题之ts : typescript 的数据类型有哪些?
  • LeetCode 热题 100 回顾2
  • 3种方法解决Docker容器中配置运行环境问题
  • 使用Python实现图形学的法线映射算法
  • 磁盘管理器
  • Qt网络编程——QUdpSocket
  • golang学习笔记24-文件操作
  • 实用好软-----电脑端 从视频中导出音频的方便工具
  • 微信小程序-数据模型与动态赋值
  • 女性向游戏的新战场:AI陪伴系统
  • CSS中的字体样式、文本样式、列表样式以及背景和渐变
  • VS Code、Git与自动化脚本的效能之旅
  • MATLAB GUI设计原则与实践
  • GPT带我学-设计模式18-访问者模式
  • Springboot项目-实战2-实现
  • 计数排序(counting sort)
  • 计算机毕业设计 饮食营养管理信息系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 问题:vscode 打印中文时终端输出乱码
  • 快手:数据库升级实践,实现PB级数据的高效管理|OceanBase案例
  • (22)activeMQ部署
  • Linux基础命令mkfs详解
  • C语言基础之数组
  • 低空经济时代:无人机飞行安全要点详解
  • 汽车线束之故障诊断方案-TDR测试
  • Leetcode 3302. Find the Lexicographically Smallest Valid Sequence
  • Anaconda虚拟环境默认路径在C盘怎么更改
  • 【bash】将本地未合入 master 的分支,生成对应 patche 文件