Javascript小案例-进度条(配置对象版)

news2024/11/25 2:34:09

gif演示图:
在这里插入图片描述
代码:
进度条(配置对象版).html

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>进度条(配置对象版)</title>
  <style>
    * {
      padding: 0;
      margin: 0;
      box-sizing: border-box;
    }

    body {
      background-color: #333;
    }

    .progressbar {
      position: fixed;
      z-index: 999;
      top: 0;
      left: 0;
      height: 14px;
      line-height: 14px;
      font-size: 12px;
      color: white;
    }

    .progressbar .out {
      float: right;
      height: 14px;
      background-color: #999;
    }

    .progressbar .specif {
      position: absolute;
      height: 14px;
      left: 46%;
    }

    .title,
    .percent {
      display: inline-block;
    }

    .title {
      padding-right: 10px;
    }

    .progressbar .in {
      width: 0;
      height: 14px;
      background-color: #159e37;
    }
  </style>
</head>

<body>
  <div class="progressbar">
  </div>
  <script>
    /**
     * 进度处理函数,默认配置对象参数说明:
     * progressBarElement-进度条容器元素,默认获取 .progressbar修饰的标签
     * titleText-进度条标题文字,默认‘处理进度’
     * finishText-进度条满时的说明文字,默认‘处理完毕’
     * start-进度条初始值,默认0.0
     * total-进度条总值,默认50.0
     * maxRandomSpeed-进度条最大随机增长速度,默认1
     * interval-定时器周期,默认1000ms
     */
    function progress({progressBarElement=document.querySelector('.progressbar'), titleText='处理进度', finishText='处理完毕', start=0.0, total=50.0, maxRandomSpeed=1,interval=1000}) {
      if (progressBarElement != null) {
        progressBarElement.style.width = `${document.documentElement.clientWidth}px`

        // 创建进度条结构
        const outter = document.createElement('div')
        outter.classList.add('out')
        outter.style.width = progressBarElement.style.width

        const specif = document.createElement('div')
        specif.classList.add('specif')

        const title = document.createElement('span')
        title.classList.add('title')
        title.innerHTML = titleText


        const inner = document.createElement('div')
        inner.classList.add('in')

        const percent = document.createElement('div')
        percent.classList.add('percent')

        specif.appendChild(title)
        specif.appendChild(percent)
        outter.appendChild(inner)
        progressBarElement.appendChild(specif)
        progressBarElement.appendChild(outter)
        // 开启定时器模拟实时进度
        let timer = setInterval(() => {
          start += Math.random() * maxRandomSpeed
          let percentage = start / total
          // 实时进度
          inner.style.width = `${percentage * (outter.style.width.split('px')[0])}px`
          // 实时百分比 x.xx%
          percent.innerHTML = `${(percentage * 100).toFixed(2)}%`
          if (start >= total) {
            clearInterval(timer)
            percent.innerHTML = finishText
          }
        }, interval)
      }
    }

    // 以【各种配置对象】为参数调用进度条处理函数

    // 1 、使用【完整自定义配置对象】进行调用
    progress({
      progressBarElement: document.querySelector('.progressbar'),
      titleText:'下载进度',
      finishText:'下载完毕',
      start:0.0,
      total:200.0,
      maxRandomSpeed:10,
      interval:500
    })

    // 2 、使用【部分自定义对象】进行调用
    // progress({
    //   start:0.0,
    //   total:100.0,
    //   maxRandomSpeed:10
    // })

    // 3 、使用【默认配置对象】进行调用
    // progress({})
  </script>
</body>

</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1036789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一个关于IntroductionAdvisor的bug

一个关于IntroductionAdvisor的bug public class TestMain {public static void main(String[] args) {// 1. 准备被代理的目标对象People peo new People();// 2. 准备代理工厂ProxyFactory pf new ProxyFactory();// 3. 准备introduction advice,advice 持有需要额外添加的…

ps[001] 初学创建剪切蒙版

前置条件&#xff1a;PS2020版本 技能应用&#xff1a;ps 海报标题和图片结合 1、画布1300*1300像素&#xff0c;altdel设置背景为前景色 2、准备一张绿色的海报&#xff0c;可以百度宫崎骏&#xff0c;找张绿色的图片就可以了 3、拉个文字款&#xff0c;写个SUMMER英文体&a…

java面试题-集合类基础

导学 这次课程主要涉及到的是List和Map相关的面试题&#xff0c;比较高频就是 ArrayList LinkedList HashMap ConcurrentHashMap ArrayList底层实现是数组LinkedList底层实现是双向链表HashMap的底层实现使用了众多数据结构&#xff0c;包含了数组、链表、散列表、红黑树等…

机器学习笔记 - k-NN算法的数学表达

一、概述 所有的机器学习算法都是有假设前提的。k-NN算法的假设前提是相似的输入有相似的输出。其分类规则是对于测试输入x,在其k个最相似的训练输入中分配最常见的标签。 k-NN 的正式定义: 对于一个待测试数据。 将的个最近邻的集合表示为 。的正式定义为 ,并且。(意思就是…

Glitch free 无毛刺时钟切换电路,时钟无缝切换,时钟无毛刺切换技术

、无毛刺时钟切换电路&#xff0c;又叫 Glitch free 电路、时钟无缝切换电路&#xff0c;在笔试中遇到过&#xff0c;如果没有接触过&#xff0c;很可能无从下手。 随着越来越多的多时钟应用于当今的芯片中&#xff08;尤其是在通信领域&#xff09;&#xff0c;在芯片运行时经…

shap-An introduction to explainable AI with Shapley values

An introduction to explainable AI with Shapley values 训练模型检查模型系数使用部分依赖图的更完整的图片从部分相关性图中读取SHAP值Shapley值的可加性解释additive regression模型解释non-additive boosted tree模型解释线性逻辑回归模型解释non-additive boosted tree逻…

Jenkins “Trigger/call builds on other project“用法及携带参数

1.功能 “Trigger/call builds on other project” 功能是 Jenkins 中的一个特性&#xff0c;允许您在某个项目的构建过程中触发或调用另一个项目的构建。 当您在 Jenkins 中启用了 “Trigger/call builds on other project” 功能并配置了相应的触发条件后&#xff0c;当主项…

python实验2

1、实验题目&#xff1a;个人用户信息注册 模拟用户个人信息注册&#xff0c;需要输入用户个人信息 姓名、性别、年龄、血型、身高、电话 信息&#xff0c;并输出显示。 源代码&#xff1a; print(用户个人信息注册) name input("请输入您的姓名&#xff1a;") sex…

Northstar 量化平台

基于 B/S 架构、可替代付费商业软件的一站式量化交易平台。具备历史回放、策略研发、模拟交易、实盘交易等功能。兼顾全自动与半自动的使用场景。 已对接国内期货股票、外盘美股港股。 面向程序员的量化交易软件&#xff0c;用于期货、股票、外汇、炒币等多种交易场景&#xff…

1.2 kV SiC SWITCH-MOS 在短路应力后的分析

标题&#xff1a;Analysis of 1.2 kV SiC SWITCH-MOS after Short-circuit Stress 摘要 本研究调查了在短路应力后1.2 kV SWITCH-MOS的残余损伤。在应力施加后&#xff0c;相当于SWITCH-MOS耐受时间的约80%&#xff0c;正向阻断状态下的漏电流急剧增加。发现SWITCH-MOS中的SB…

一起学数据结构(8)——二叉树中堆的代码实现

在上篇文章中提到&#xff0c;提到了二叉树中一种特殊的结构——完全二叉树。对于完全二叉树&#xff0c;在存储时&#xff0c;适合使用顺序存储。对于非完全二叉树&#xff0c;适合用链式存储。本文将给出完全二叉树的顺序结构以及相关的代码实现&#xff1a; 1. 二叉树的结构…

Categraf v0.3.22部署

wget https://github.com/flashcatcloud/categraf/releases/download/v0.3.22/categraf-v0.3.22-linux-amd64.tar.gz下载安装包。 sudo mkdir /opt/categraf创建一个目录。 tar zxf categraf-v0.3.22-linux-amd64.tar.gz -C /opt/categraf进行解压。 /opt/categraf/categ…

ORA-27102: out of memory

正在外面办事呢&#xff0c;项目经理打电话并截图说明&#xff0c;物理服务器增加内存后&#xff0c;他调整sgapga后&#xff0c;重启无法启动了&#xff0c;报错ORA-27102: out of memory。 SYSorcl> startup; ORA-27102: out of memory Linux-x86_64 Error: 28: No space…

9领域事件

本系列包含以下文章&#xff1a; DDD入门DDD概念大白话战略设计代码工程结构请求处理流程聚合根与资源库实体与值对象应用服务与领域服务领域事件&#xff08;本文&#xff09;CQRS 案例项目介绍 # 既然DDD是“领域”驱动&#xff0c;那么我们便不能抛开业务而只讲技术&…

深度学习综述:Computation-efficient Deep Learning for Computer Vision: A Survey

论文作者&#xff1a;Yulin Wang,Yizeng Han,Chaofei Wang,Shiji Song,Qi Tian,Gao Huang 作者单位&#xff1a;Tsinghua University; Huawei Inc. 论文链接&#xff1a;http://arxiv.org/abs/2308.13998v1 内容简介&#xff1a; 在过去的十年中&#xff0c;深度学习模型取…

原生HTML实现marquee向上滚动效果

实现原理&#xff1a;借助CSS3中animation动画以及原生JS克隆API <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /…

【MySQL集群二】使用MyCat和ProxySql代理MySQL集群

中间件代理MySQL MyCat安装MyCat介绍&#xff1a;步骤1&#xff1a;安装Java环境步骤2&#xff1a;下载并解压Mycat步骤3&#xff1a;配置Mycat步骤4&#xff1a;启动Mycat ProxySql安装ProxySql介绍&#xff1a;步骤1&#xff1a;更新系统步骤2&#xff1a;安装ProxySQL步骤3&…

数学笔记:傅里叶变化

1 介绍 简而言之&#xff0c;傅里叶变换把一个输入信号分解成一堆正弦波的叠加 比如&#xff0c;以下是一个波&#xff1a; 这个波可以分解为两个正弦波的叠加。 也就是说&#xff0c;当我们将两个正弦波相加时&#xff0c;就会得到原来的波 哪怕是一个方波 也可以分解成一组…

【块状链表C++】文本编辑器(指针中 引用 的使用)

》》》算法竞赛 /*** file * author jUicE_g2R(qq:3406291309)————彬(bin-必应)* 一个某双流一大学通信与信息专业大二在读 * * brief 一直在竞赛算法学习的路上* * copyright 2023.9* COPYRIGHT 原创技术笔记&#xff1a;转载…

稀疏奖励问题解决方案总览

方案简介 HER (Hindsight Experience Replay) - 2017年 思想 HER&#xff08;Hindsight Experience Replay&#xff09;是一种特别设计用于解决稀疏奖励问题的强化学习算法。它主要用于那些具有高度稀疏奖励和延迟奖励的任务&#xff0c;特别是在连续动作空间中&#xff0c;如机…