首页 > 其他分享 >html+js实现数字自动动态增长

html+js实现数字自动动态增长

时间:2023-12-15 15:46:11浏览次数:34  
标签:count 0.00 elementarray js html var 动态 speed options

animationnumber函数的参数可以是数组也可以是单个字符串,但是必须是数组中的元素是数字类型

HTML部分

<div class="content-boxs">
    <div class="row-price">
        <div class="price-box">
            <p id="totalPrice" data-value="250">¥0.00</p>
        </div>
    </div>
    <div class="row-price">
        <div class="price-box">
            <p id="totalOrder" data-value="852">¥0.00</p>
        </div>
    </div>
    <div class="row-price">
        <div class="price-box">
            <p id="monthsPrice" data-value="48596">¥0.00</p>
        </div>
    </div>
    <div class="row-price">
        <div class="price-box">
            <p id="monthsOrder" data-value="6952">¥0.00</p>
        </div>
    </div>
</div>

JS部分

window.onload = function() {
    animationNumber(['totalPrice', 'totalOrder', 'monthsPrice', 'monthsOrder'])
    //animationNumber('monthsprice')
}
 
function animationNumber(elementarray, options) {
    options = Object.assign({}, options, {
        'allTime': 3000,
        'speed': 50
    })
    var allTime = options.allTime,
        speed = options.speed;
    if (elementarray instanceof Array) {
        var oneNumArray = [],
            elementidArray = [],
            countArray = [],
            valueOneArray = [];
        for (var i = 0; i < elementarray.length; i++) {
            var elementid = document.getElementById(elementarray[i]),
                valueN = elementid.getAttribute('data-value'),
                valueOne = 0;
            if (valueN instanceof Array) {
                valueOne = eval(valueN)[0]
            } else {
                valueOne = valueN
            }
            valueOneArray[i] = valueOne
            oneNumber = Math.floor(valueOne / (allTime / speed)) || 1;
            oneNumArray[i] = oneNumber
            elementidArray[i] = elementid
            countArray[i] = 0
        }
        var datetime = setInterval(function() {
            var countClear = 0
            for (var k = 0; k < elementidArray.length; k++) {
                countArray[k] += oneNumArray[k]
                if (countArray[k] >= valueOneArray[k]) {
                    countClear++
                    countArray[k] = valueOneArray[k]
                }
                elementidArray[k].innerText = '¥' + countArray[k];
            }
            if (countClear >= 4) {
                clearInterval(datetime)
            }
        }, 30)
    }
    if (typeof elementarray === 'string') {
        var e = document.getElementById(elementarray),
            allNum = eval(e.getAttribute('data-value'))[0] ? eval(e.getAttribute('data-value'))[0] : 0,
            oneNumber = Math.floor(allNum / (allTime / speed)),
            count = 0;
        var datetime = setInterval(function() {
            count += oneNumber
            if (count >= allNum) {
                clearInterval(datetime);
                count = allNum
            }
            e.innerText = '¥' + count;
        }, 30)
    }
}

 

标签:count,0.00,elementarray,js,html,var,动态,speed,options
From: https://www.cnblogs.com/ymdi/p/17903488.html

相关文章

  • 如何用JS判断div中内容为空,当为空时隐藏div
    <div class="right_con_div" id="nodiv"><h2>标题1</h2><ul class="id_inner"></ul></div><div class="right_con_div" id="nodiv"><h2>标题2</h2><ul class=......
  • JS中两个数组取最大值
    如果你有两个数组,并且想要找到它们中的最大值,你可以使用Math.max()方法结合展开运算符...来实现。以下是示例代码:constarray1=[5,8,2,10];constarray2=[3,6,4,9];//使用展开运算符将两个数组合并为一个新数组constcombinedArray=[...array1,...array2];......
  • 【Node.js】-包以及npm基本使用操作
    一、包的概念将模块、代码、其他资料聚合成一个文件夹包分类:项目包:主要用于编写项目和业务逻辑软件包:封装工具和方法进行使用要求:根目录中,必须有package.js文件(记录包的清单信息)注意:导入软件包时,引入的默认是index.js模块文件/main属性指定的模块文件二、案例需求:封装数组求和函数......
  • Nestjs 依赖注入和控制反转
    前言Nest.js是一个使用TypeScript实现的在Node.js环境中运行的Web服务开发框架。它借鉴了很多优秀的设计思想,本文来说一说Nest中的依赖注入和控制反转。依赖注入依赖注入,英文名是DependencyInjection,简称DI。什么是依赖注入?可以分开来看,就是“依赖”和“注入”。您可能......
  • java动态调用webservice
    packagecom.smp.common;importserverInfo.ServerInfo;importjavax.xml.soap.*;importjavax.xml.transform.Source;importjavax.xml.transform.Transformer;importjavax.xml.transform.TransformerFactory;importjavax.xml.transform.stream.StreamResult;impo......
  • 2023最新中级难度HTML面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-中级难度HTML面试题合集问:请解释HTML5与之前的HTML版本相比有哪些新特性和优势?HTML5引入了许多新特性和优势,包括但不限于以下几点:新元素和功能:HTML5引入了一些新的元素,例如、、等,可以实现绘图、视频播放等功能。支持离线存储:HTML5允......
  • SheetJS 合并后的单元格不能正常显示边框
    原配置样式代码/***设置单元格样式*@paramworksheet工作单元*@paramfirstRow开始行*@paramlastRow结束行*@paramfirstCol开始列*@paramlastCol结束列*@paramfont字号*@paramblod是否加粗*/setCellStyle(worksheet......
  • HTML 常用表单元素使用以及注解
    一、表单的用途HTML表单用于收集用户的输入信息。HTML表单表示文档中的一个区域,此区域包含交互控件,将用户收集到的信息发送到Web服务器。一个表单有三个基本组成部分:表单标签:这包含了处理表单数据所用的URL以及数据提交到服务器的方式。表单域(表单控件):包含了文本框、......
  • 用html实现本地文件的上传
    实现本地文件的上传需要使用到HTML5中的FileAPI和FormData对象。以下是一个简单的实现示例:<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>文件上传</title></head><body><formid="upload-form"><......
  • Python 如何修改并存储 json文件内容 - json package 使用
     直接上代码:importjsondefjson_load(json_file):withopen(json_file,'r')asfh:content=json.load(fh)returncontentfh.close()defjson_save(json_file,data):withopen(json_file,'w',encoding='UTF-8')asf:......