css3中clip实现圆环进度条

本文主要和大家介绍了css3 clip实现圆环进度条的示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。

CSS中有一个属性叫做clip,为修剪,剪裁之意。

clip 属性剪裁绝对定位元素。这个属性用于定义一个剪裁矩形。对于一个绝对定义元素,在这个矩形内的内容才可见。出了这个剪裁区域的内容会根据 overflow 的值来处理。

css3中clip实现圆环进度条

环形进度条.gif

怎么实现这样一个圆环进度条的效果呢,可以使用canvas、svg、GIF等等方式,今天我们来说下使用css3怎么来实现。

实现思路

立即学习“前端免费学习笔记(深入)”;

圆环很简单,一行cssborder-radius:50%即可实现,而且没有兼容性问题,什么,你说IE,让它滚…

我们这里需要三个圆环,一个整的,两个半的。大概画了下图

css3中clip实现圆环进度条

这里半圆环我使用了clip进行裁剪,主要代码如下,

.left{    width: 200px;    height: 200px;    border-radius: 50%;    border: 10px solid lightblue;    position:absolute;    top: -10px;   /* 10的原因是因为边框是10个像素 */    right: -10px;    clip: rect(0 100px 200px 0);  /* 上面为0 右边到100px 下面200px 左边到0 这个区域的我们裁剪出来 */ }

登录后复制

右边类似只是裁剪位置改了

.right{    width: 200px;    height: 200px;    border-radius: 50%;    border: 10px solid lightblue;    position:absolute;    top: -10px;  /* 10的原因是因为边框是10个像素 */    right: -10px;    clip: rect(0 200px 200px 100px);  /* 位置更改,计算可以参考上图 */ }

登录后复制

完整代码

nbsp;html>                Document            p{            box-sizing: border-box;        }        .box{            width: 200px;            height: 200px;            position: relative;            background-color: #ccc;            border-radius: 50%;            left: 40%;            top: 200px;        }        .num{            position: absolute;            top: 50%;            left: 50%;            background: #fff;            border-radius: 50%;            width: 180px;             height: 180px;            transform: translate(-50%, -50%);            text-align: center;            line-height: 180px;            font-size: 32px;        }                        .clip{            width: 200px;            height: 200px;            position: absolute;            border: 10px solid #ccc;            border-radius: 50%;            clip: rect(0, 200px, 200px, 100px);        }        .left{            width: 200px;            height: 200px;            position: absolute;            border: 10px solid lightblue;            border-radius: 50%;            clip: rect(0 100px 200px 0);            top: -10px;            left: -10px;        }        .right{            width: 200px;            height: 200px;            position: absolute;            border: 10px solid lightblue;            border-radius: 50%;            clip: rect(0 200px 200px 100px);            top: -10px;            left: -10px;        }        .width-none{            width: 0;        }        .auto{            clip: auto;        }        

        

            

            

                

        

         let clip = document.querySelector('.clip'), left = document.querySelector('.left'), right = document.querySelector('.right'), num = document.querySelector('.num'), rotate = 0; let loop = setInterval(() => { if(rotate >= 100){ rotate = 0; right.classList.add('width-none'); clip.classList.remove('auto'); } else if(rotate > 50){ right.classList.remove('width-none'); clip.classList.add('auto'); } rotate++; left.style.transform = 'rotate('+ 3.6*rotate + 'deg)'; num.innerHTML = `${rotate}%` },100)

登录后复制

简单说下上面的代码

1、首先隐藏了右半圆,这是因为我们需要旋转的是左半圆,我们可以等左半圆转到右边圆的位置再显示右 边,就是等到旋转到180度的时候。

2、同时我们看到主圆添加了clip: rect(0, 200px, 200px, 100px);裁剪样式,这是因为默认我们 进度是0%的,我们只显示右边的话才能隐藏左边,但是我们右边不是隐藏的吗?那显示它干嘛呢,因为 旋转左边的时候就看到转到右边的圆了。稍微有点绕,请结合代码,多多理解

3、等到左边旋转了180我们需要将右边显示出来,并且将box元素的裁剪设置为默认值,就是不裁剪,这 这样才能显示完整的左右两个圆。

4、最后我们使用js来控制旋转角度并将百分比显示在页面上

写在最后

如果上面的解释看不明白,索性就不要看了,把代码放在本地调试下,自己去理解。

别钻牛角尖,代码是最好的语言。

相关推荐:

css3实现圆环进度条方法

css3实现圆环进度条方法

css3实现圆环进度条方法

以上就是css3中clip实现圆环进度条的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2900195.html

(0)
上一篇 2025年3月10日 23:54:33
下一篇 2025年3月10日 23:54:42

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • css3字体变体font-variation详解

    如果要用一个词来描述的话,可以把其称为字体变体(font variants),对应的css属性就是font-variation-*属性,其包括连接(ligatures)、大写(caps)、数字(numerals)和替代字形(alternat…

    编程技术 2025年3月10日
    200
  • css实现右侧固定宽度左侧宽度自适应

    本文主要和大家介绍了css实现右侧固定宽度 左侧宽度自适应,这种布局比较常见,博客园很多默认主题就是这种。一般情况下,这种布局中宽度固定的区域是侧边栏,而自适应的区域是主体内容区,反过来也可以:左侧宽度固定,右侧自适应。不管是左是右,反正就…

    2025年3月10日
    200
  • css和js实现的好看的图形树

    本文主要和大家分享css和js实现的好看的图形树实例,希望能帮助到大家。 给大家分享一个使用css与js生成的唯美炫酷的图形树效果,相关代码如下: nbsp;html>    cloth   @import url(http://fo…

    编程技术 2025年3月10日
    200
  • css3使用vw和vh实现自适应的代码实例

    响应式布局的实现依靠媒体查询( media queries )来实现,选取主流设备宽度尺寸作为断点针对性写额外的样式进行适配,但这样做会比较麻烦,只能在选取的几个主流设备尺寸下呈现完美适配。本文主要和大家介绍了纯css3使用vw和vh实现自…

    2025年3月10日 编程技术
    200
  • css3实现switch组件开关

    本文主要和大家介绍了如何用css3实现switch组件的方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 基于表单的checkbox 效果图 原理 checkbox, 有两种状态…

    2025年3月10日
    200
  • css3使用vw和vh实现自适应方法

    响应式布局的实现依靠媒体查询( media queries )来实现,选取主流设备宽度尺寸作为断点针对性写额外的样式进行适配,但这样做会比较麻烦,只能在选取的几个主流设备尺寸下呈现完美适配。即使是通过 rem 单位来实现适配,也是需要内嵌一…

    2025年3月10日 编程技术
    200
  • 6种CSS水平垂直居中解决方案

    本文主要和大家介绍了css水平垂直居中解决方案(6种)的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 准备 创建元素 child 登录后复制 垂直水平居中方案一:知道宽度的情况下 …

    编程技术 2025年3月10日
    200
  • css3仿写阿里云水纹效果代码分享

    本文主要和大家介绍了css3 仿写阿里云水纹效果的示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 效果图 什么也不说了,上代码。 nbsp;html>    css3…

    2025年3月10日
    200
  • CSS理解块级格式上下文BFC

    1.bfc 定义 BFC(Block formatting context)直译为”块级格式化上下文”。它是一个独立的渲染区域,只有Block-level box(块级元素)参与, 它规定了内部的Block-leve…

    2025年3月10日 编程技术
    200
  • css中引入svg来兼容部分安卓机实例

    本文主要和大家介绍了css中引入svg来兼容部分安卓机显示0.5px边框的示例的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 前言 在开发 H5 页面的时候发现,部分安卓机的原生浏…

    编程技术 2025年3月10日
    200

发表回复

登录后才能评论