【CSS3+HTML5+JQUERY】------ 实现环形进度条实例代码-(已简单封装)

news2024/12/24 9:15:12

1. JavaScript代码 circle.js文件:

简单的封装了一下 直接调用方法即可

(function ($$) {

    var lyCircle = {};

    lyCircle.options={
         timer:20,
         circleLeft:'.ly-circle-left',
         elements:"",
         circleRight:".ly-circle-right",
         percentSum:0,//百分比
         bgColor:'#00a7ff',
         borderColor:'#cdcdcd',
         name:"0",
         value:"0"
    };


    /** 环图div **/
    lyCircle.fnCircleDiv=function () {
        var circleDiv="";
        circleDiv+='<div class="ly-circle" {{style}}>';
        circleDiv+='  <div class="ly-circle-left ly-circle-ab" style="{{leftStyle}}" ></div>';
        circleDiv+='    <div class="ly-circle-right ly-circle-ab" style="{{rightStyle}}"></div>';
        circleDiv+='    <div class="ly-circle-text">';
        circleDiv+='    <span class="ly-circle-name">{{name}}</span>';
        circleDiv+='    <span class="ly-circle-value">/{{value}}</span>';
        circleDiv+='  </div>';
        circleDiv+='</div>';
        return circleDiv;
    };

    /**赋值百分比进度展示**/
    lyCircle.fnRenderCircleRate=function(percent,percentSum,bgColor,elements,circleLeft,circleRight){
        var percentSum=percentSum;
        var bgColor=bgColor;
        var elements=elements;
        var circleLeft=$(elements).find(circleLeft);
        var circleRight=$(elements).find(circleRight);
        if(percentSum==0){
            return;
        }
        if (percent <= 50) {
            circleRight.css({'transform':'rotate(' + 3.6 * percent  + 'deg)'});
        } else {
            circleRight.css({ 'transform': 'rotate(0)','border-color':bgColor});
            circleLeft.css({ 'transform': 'rotate(' + 3.6 * (percent  - 50) + 'deg)'});
        }
    };

    /** 渲染环图 **/
    lyCircle.fnlyCircleRender = function (options) {

        this.options   = $.extend({}, lyCircle.options, options);

        var name=lyCircle.options.name;
        var value=lyCircle.options.value;
        var $elements=lyCircle.options.elements;
        var bgColor=lyCircle.options.bgColor;
        var borderColor=lyCircle.options.borderColor;
        var circleLeft=lyCircle.options.circleLeft;
        var circleRight=lyCircle.options.circleRight;
        var percentSum=lyCircle.options.percentSum;
        var timer=lyCircle.options.timer;

        //创建环图
        var circleDiv=lyCircle.fnCircleDiv();
        circleDiv=circleDiv.replace("{{name}}",name);
        circleDiv=circleDiv.replace("{{value}}",value);
        circleDiv=circleDiv.replace("{{style}}","style='box-shadow: inset 0 0 0 4px "+bgColor+"'");
        if(percentSum>=50){
            circleDiv=circleDiv.replace("{{leftStyle}}","border-color:"+borderColor+"");
            circleDiv=circleDiv.replace("{{rightStyle}}","border-color:"+borderColor+"");
        }
        $($elements).html(circleDiv);

        //定时动画
        var percent=0;
        var set=setInterval(function () {
            percent=percent+1;
            if(percent==percentSum){
                clearInterval(set);
            }
            lyCircle.fnRenderCircleRate(percent,percentSum,bgColor,$elements,circleLeft,circleRight);
        },timer);

    }

    $$.lyCircle = lyCircle;
})(window);

2. css3 样式 cricle.css 

.ly-circle {
    width: 90px;
    height: 90px;
    position: relative;
    border-radius: 50%;
    box-shadow: inset 0 0 0 4px #00a7ff;
    display: inline-flex;
    margin: 0px;
    border: 8px solid #f9f9f9;
}
.ly-circle-ab {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
}
.ly-circle-left {
    border: 4px solid #dcdcdc;
    border-radius: 50%;
    clip: rect(0, 45px, 90px, 0);
    /*transform:rotate(0deg);*/
    /*transition: all 0.3s;*/
}

.ly-circle-right {
    border: 4px solid #dcdcdc;
    border-radius: 50%;
    clip: rect(0, 90px, 90px, 45px);
    /*transform:rotate(0deg);*/
    /*transition: all 0.5s;*/
}
.ly-circle-text {
    text-align: center;
    width: 90px;
    line-height: 90px;
}
.ly-circle-name {
    font-size: 16px;
    font-weight: 500;
    margin-right: -3px;
}
.ly-circle-value{
    font-size:12px;
    color: #aaa;
}

3.调用方法示例如下: 部分代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>Title</title>
    <link rel="stylesheet" href="/libs/layui/v2.4.5/css/layui.css">
 
    <link rel="stylesheet" href="/libs/font-awesome-4.7.0/css/font-awesome.min.css">
    <link rel="stylesheet" href="/mpv/homePage/comon.css">
    <link rel="stylesheet" href="/mpv/libs/circle/circle.css">
    <link rel="stylesheet" href="/mpv/homePage/pendPresCount/pendPresCount.css">
    <style>

    </style>
</head>
<body>
<div class="div-row-body">
    <!--title头部-->
    <div class="div-row-header">
        <span class="header-span-title">待处理隐患统计</span>
        <!--<span class="header-data-count"><label>未读</label><label>0</label></span>-->
        <!--<span class="pull-more btn-more" title="更多"><i class="fa fa-ellipsis-h"></i> </span>-->
    </div>
    <!--主题内容-->
    <div class="div-row-content">
        <div class="div-row-data" style="display: inline-flex; margin: 5px 20px;    width: 100%;">
            <!--待整改-->
            <div class="circle-span">
                <div class="circle-block-dzg"></div>
                <p>待整改</p>
            </div>

        </div>
    </div>
</div>
<script src="/libs/jquery/jquery-3.2.1.min.js"></script>
<script src="/libs/layui/v2.4.5/layui.all.js"></script>
<script src="/mpv/libs/circle/circle.js"></script>

<script>
  $(document).ready(function () { 
      //调用环形   
      lyCircle.fnlyCircleRender({
           elements:".circle-block-dzg",
           percentSum:98,//百分比
           name:"593",
           value:"605",
           bgColor:"#00b706"
      });    
  })
</script>
</body>
</html>

 4.最后效果图:

 

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

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

相关文章

stable diffusion中的u net

Stable Diffusion 包含几个核心的组件&#xff1a; 一个文本编码器&#xff08;在 Stable Diffusion 中使用 CLIP 的 ViT-L/14 的文本编码器&#xff09;&#xff0c;用于将用户输入的 Prompt 文本转化成 text embedding&#xff1b;一个 Image Auto Encoder-Decoder&#xff…

大模型核心技术原理: Transformer架构详解

在大模型发展历程中&#xff0c;有两个比较重要点&#xff1a;第一&#xff0c;Transformer 架构。它是模型的底座&#xff0c;但 Transformer 不等于大模型&#xff0c;但大模型的架构可以基于 Transformer&#xff1b;第二&#xff0c;GPT。严格意义上讲&#xff0c;GPT 可能…

【学习笔记】Python核心技术与实战-基础篇-03列表和元组,到底用哪个?

目录 列表和元组基础概念区别列表和元组的基础操作和注意事项列表和元组存储方式的差异列表和元组的性能列表和元组的使用场景总结思考题 列表和元组基础 概念 列表和元组&#xff0c;都是一个可以放置任意数据类型的有序集合。 在绝大多数编程语言中&#xff0c;集合的数据类…

C++算法:排序之二(归并、希尔、选择排序)

C算法&#xff1a;排序 排序之一&#xff08;插入、冒泡、快速排序&#xff09; 排序之二&#xff08;归并、希尔、选择排序&#xff09; 文章目录 C算法&#xff1a;排序二、比较排序算法实现4、归并排序5、希尔排序5、选择排序 原创文章&#xff0c;未经许可&#xff0c;严禁…

从vue2到vue3的生命周期

1.vue2 在vue2.x中的生命周期为 beforeCreate created beforeMount mounted beforeUpdate updated beforeDestroy destroyed activated deactivated errorCaptured 在vue3中&#xff0c;新增了一个setup生命周期函数&#xff0c;setup执行的时机是在beforeCreate生命函数之前…

count(0)、count(1)和count(*)、count(列名) 的区别

当我们对一张数据表中的记录进行统计的时候&#xff0c;习惯都会使用 count 函数来统计&#xff0c;但是 count 函数传入的参数有很多种&#xff0c;比如 count(1)、count(*)、count(字段) 等。 到底哪种效率是最好的呢&#xff1f;是不是 count(*) 效率最差&#xff1f; 一.…

【Mysql数据库从0到1】-入门基础篇--sql语句简单使用

【Mysql数据库从0到1】-入门基础篇--sql语句简单使用 &#x1f53b;一、数据库创建、删除、选择1.1 &#x1f343; create database 创建数据库1.2 &#x1f343; 使用 mysqladmin 创建数据库1.3 &#x1f343; drop 命令删除数据库--一般不建议在数据库执行delete、drop等命令…

公司招人面试了一个00后,绝对能称为是内卷届的天花板

公司前段缺人&#xff0c;也面了不少测试&#xff0c;结果竟然没有一个合适的。一开始瞄准的就是中级的水准&#xff0c;也没指望来大牛&#xff0c;提供的薪资也不低&#xff0c;面试的人很多&#xff0c;但平均水平很让人失望。令我印象最深的是一个00后测试员&#xff0c;他…

【商品页面详情页+商品评论】API接口技术交流,封装接口

商品详情API接口数据&#xff1a;提供了商品的基本信息&#xff0c;包括商品名称、描述、规格、价格、销量、库存等信息。此外&#xff0c;也可以通过提供的API接口来获取商品的图片、评价、物流信息等详细数据。 商品评论接口是消费者对商品所进行的客观评价 电商API的应用价…

使用geoserver发布shp和tiff数据

一、安装并启动geoserver服务 1.1 下载geoserver 进入官网下载 由于geoserver是使用Java语言开发的&#xff0c;所以运行需要java的环境&#xff0c;不同geoserver的版本号对java的版本要求不同&#xff0c;所以选择版本时需注意对应java的版本要求&#xff0c;由于我本地安…

Nginx配置域名证书

Nginx配置域名证书 1、证书存放路径 2、nginx.conf文件中增加以下配置&#xff0c;注意路径不一样&#xff0c;访问地址目录不一样 server {listen 443 ssl http2;server_name jistest.vwatj.ap.vwg;ssl_certificate D:/home/XXX/ssl/2023/XXX.cer; ssl_certificate_key D…

Spring Validation 接口入参校验

一、前言 JSR 是 Java Specification Requests 的缩写&#xff0c;含义为 JAVA 规范提案。 JSR 303 - Bean Validation 规范, 正是一套基于 JavaBean 参数校验的标准。 Hibernate Validator 是 JSR 303 的实现&#xff0c;它提供了 JSR 303 规范中所有约束&#xff08;constrai…

泪崩!测试面试技术面过了却挂在了——“谈谈你的职业生涯规划”

前不久&#xff0c;软件测试交流群里面有一个成员吐槽&#xff0c;说今天的面试技术已经面过了&#xff0c;可HR却问了她“未来的职业发展目标是什么&#xff1f;”然后&#xff0c;挂了&#xff01;这个问题我们平时在交流群里都有讲过&#xff0c;可是这丫头比较疯&#xff0…

级差制系统开发模式是怎么赚钱的?

级差制是直销所有模式中最受欢迎的模式之一&#xff0c;很多企业商家都会在级差制和双轨制中二选一&#xff0c;可见这个模式的优秀程度。下面就来简单分析一下&#xff0c;在级差制模式中是怎么赚钱的&#xff1f; 级差制最大的特点就是以卖货为主&#xff0c;它所有的奖金设置…

正规理财app软件有哪些?top5资质正规理财app软件最新排名

正规理财app软件有哪些&#xff1f;随着移动端理财的普及&#xff0c;越来越多的人开始使用理财app软件进行投资和资产管理。但是&#xff0c;市场上有很多理财软件&#xff0c;如何选择一款正规、安全的软件是关键。下面就为大家介绍一些选择理财app软件的建议。首先&#xff…

GDT陶瓷气体放电管串电容的5点作用

串电容&#xff0c;是指串联衔接于线路中&#xff0c;其主要目的是用来补偿电力线路感抗的电容器&#xff0c;电容器也是目前电力设备中必不可少的一环&#xff0c;其种类很多。下面优恩将为大家介绍一下GDT陶瓷气体放电管串电容的作用。 据小编了解&#xff0c;GDT陶瓷气体放电…

Bellhop 海底地形起伏条件下的传播特性

文章目录 前言一、预备内容二、水平海底波导&#xff08;水平海底&#xff09;1、海底水平的深海波导中的声线①、环境文件②、Matlab 命令③、执行结果 2、海底水平的深海波导中的本征声线①、环境文件②、Matlab 命令③、执行结果 3、海底水平的深海波导中的相干传播损失①、…

TDEngine3.0 环境安装、配置及使用经验总结

TDEngine3.0 环境安装、配置及使用经验总结 一、TDengine 介绍二、TDengine的下载三、TDengine Server安装及配置3.1 安装3.2 taos的参数配置3.3 启动3.4 taosAdapter 四、TDengine Client 安装4.1 linux客户端安装4.2 windows客户端安装 五、TDEngine3.x的使用总结 一、TDengi…

minhook探究

参考&#xff1a;https://github.com/TsudaKageyu/minhook minhook是windows平台上支持x86/x64的hook库&#xff0c;git上的自我介绍说是“mininalistic",其简约并不简单。在接口的设计&#xff0c;hook的兼容性等方面&#xff0c;还是值得我们初学者解决的。熟悉inline …

Hadoop之HDFS概述

Hadoop概述之HDFS HDFS架构概述优缺点HDFS架构HDFS文件块大小HDFS的shell命令HDFS读写流程写数据流程 HDFS读数据流程NameNode 和 SecondaryNameNode工作机制DataNode工作机制DataNode数据完整性如何保证 端口名称Hadoop2.xHadoop3.xNameNode内部通信端口8020/9000NameNode HTT…