css3实现圆环进度条方法

刚开始写这个圆环的时候是参照帖子上给出的css代码代入,然后根据自己的需求改,发现圆环可以完美转动了,但是好像没法用百分比控制,所以放弃了随便copy一个现成的想法,该动动脑子还是有必要的。

实现原理

css实现圆环的方法很多,我看大部分都是采用边框(border)+ 裁剪(clip:rect())来实现的,所以我也准备采用这种方式。

主要是布局问题,我看大部分圆环进度条都大同小异,就是布局和转动方式不同

// html 

// css .loading { position: fixed; top: 50%; left: 50%; overflow: hidden; z-index: 9999; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%);}.circle{ -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; border:10px solid #fff; clip:rect(0,100px,100px,50px);}.clip-auto{ clip:rect(auto, auto, auto, auto);}.percent{ -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; top:-10px; left:-10px;}.left{ -webkit-transition:-webkit-transform ease; transition:-webkit-transform ease; transition:transform ease; border:10px solid #E54B00; clip: rect(0,50px,100px,0);}.right{ border:10px solid #E54B00; clip: rect(0,100px,100px,50px);}.wth0{ width:0;}// js$('.left').animate({ deg: per*3.6}, { step: function(n, fx) { if(per>180){ $('.circle').addClass('clip-auto'); $('.right').removeClass('wth0'); } $(this).css({ "-webkit-transform":"rotate("+n+"deg)", "-moz-transform":"rotate("+n+"deg)", "transform":"rotate("+n+"deg)" }); }, duration:500})

登录后复制

通过对 .circle(左右两侧圆环的父元素) 的裁剪只显示左侧的圆环,右侧的圆环的宽度直接为 0 ,当进度条进行到50%的时候,即左侧圆环转动角度为 transform: rotate(180deg) ,将 .circle 的裁剪去掉 (.clip-auto),右侧圆环的宽度恢复。基本就是这个套路。

jQuery的 动画方法 animate() 的 step属性

如果仅用

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

$(this).css({    "-webkit-transform":"rotate("+n+"deg)",    "-moz-transform":"rotate("+n+"deg)",    "transform":"rotate("+n+"deg)"});

登录后复制

来控制角度的转动,没有丝毫动画显得比较生硬,这时候就要考虑给它加个动画了,而jq提供的 animate 对只有数字值可创建动画,而字符串类型的值无法创建动画。

这时候需要用到 animate的step属性了。

step介绍

animate的progress属性是我们经常用的,对数字值的属性进行操作,但是字符串值的属性却并不能用它进行操作,这时候就需要step属性了。

step 顾名思义就是对一段动画进行步骤分解,在animate方法中,每一步具体是怎么分解的,不是由我们设定的CSS属性值和动画时长来决定的,是由系统来决定的。

$(".left").animate({left:50},{    duration:100,    step:function(now,fx){        console.log(now) //控制台输出,看看这个动画被分解成了几个片段    }});

登录后复制

这个地方主要是解释为什么在这里给角度赋值,顺便说明一下它到底将该值分成多少个片段并不是由我们人为控制的。

step方法的第二个参数——fx

$(".demo").animate({    first:2,    second:10}, {    step:function(n,fx){        // 动画元素的每个动画属性每一次动画效果的执行都将调用的函数。第1个参数是当前动画正在改变的属性的实时值(每1次动画过程中,属性值的实时反馈呈现);第2个参数为修改Tween 对象提供了一个机会来改变animate第1个参数中设置的属性在动画结束时的值。        // fx: jQuery.fx 原型对象的一个引用,其中包含了多项属性,比如        // 执行动画的元素:elem;        // 动画正在改变的属性:prop;        // 正在改变属性的当前值:now;        // 正在改变属性的结束值:end;        // 正在改变属性的单位:unit;等                // 可在这里改变animate第1个参数中设置的属性second在动画结束时的值        if(fx.prop=="second"){fx.end=5}        console.log(fx.prop+": "+n);    },    duration:2000})

登录后复制

相关推荐:

详解canvas实现圆弧、圆环进度条的实例方法

详解canvas实现圆弧、圆环进度条的实例方法

详解canvas实现圆弧、圆环进度条的实例方法

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

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

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

(0)
上一篇 2025年3月10日 23:57:08
下一篇 2025年3月10日 23:57:19

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

相关推荐

  • CSS实现Sticky Footer实例教程

    本文主要介绍了css实现sticky footer的示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 所谓 “Sticky Footer”,并不是什么新的前端概念和技术,它指…

    2025年3月10日
    000
  • 关于CSS中重要的BFC详解

    本文我们主要和大家分享关于css中重要的bfc详解,css中有个重要的概念bfc,搞懂bfc可以让我们理解css中某些原本诡异(??)的地方。 1. 简介 在解释BFC之前,先说一下文档流。我们常说的文档流其实分为定位流、浮动流、普通流三种…

    编程技术 2025年3月10日
    200
  • CSS使用Grid布局构建网站首页

    css的功能最终强大到能轻松实现我们的设计目标,这是一个web开发人员最美好的时代。现在,让我们使用超赞的工具——grid布局来创建一个主页。 设计 下面是我们将要实现的页面 在我们开始编码之前,我们需要进入网格的思维模式。 第一步是观察我…

    2025年3月10日 编程技术
    200
  • css3的calc在less编译时如果被计算应该如何解决

    这次给大家带来css3的calc在less编译时如果被计算应该如何解决,解决css3的calc在less编译时如果被计算的注意事项有哪些,下面就是实战案例,一起来看一下。 对于前端er来说,Less或Sass已经是一项必备的基本技能,有了这…

    编程技术 2025年3月10日
    200
  • CSS的经典三栏布局如何实现

    这次给大家带来css的经典三栏布局如何实现,实现css的经典三栏布局的注意事项有哪些,下面就是实战案例,一起来看一下。 本文介绍了CSS经典三栏布局方案,分享给大家,也给自己做个笔记,具体如下: 三栏布局,顾名思义就是两边固定,中间自适应。…

    编程技术 2025年3月10日
    200
  • css3的新单位vw、vh、vmin、vmax应该如何使用

    这次给大家带来css3的新单位vw、vh、vmin、vmax应该如何使用,css3的新单位vw、vh、vmin、vmax使用的注意事项有哪些,下面就是实战案例,一起来看一下。 本文介绍了css3新单位vw、vh、vmin、vmax的使用详解…

    编程技术 2025年3月10日
    200
  • css3中的渐进增强和优雅降级如何使用

    这次给大家带来css3中的渐进增强和优雅降级如何使用,使用css3中的渐进增强和优雅降级的注意事项有哪些,下面就是实战案例,一起来看一下。 渐进增强和优雅降级这两个概念是在 CSS3 出现之后火起来的。由于低级浏览器不支持 CSS3,但是 …

    编程技术 2025年3月10日
    200
  • css怎么做出六边形图片

    这次给大家带来css怎么做出六边形图片,css做出六边形图片的注意事项有哪些,下面就是实战案例,一起来看一下。 用简单的div配合伪元素,即可‘画出’这幅六边形图片,原理是三个相同宽高的div,通过定位旋转拼合成一个六边形,再利用背景图层叠…

    编程技术 2025年3月10日
    200
  • CSS代码重构详解

    本文主要介绍css代码重构,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 1. 重构和架构 重构是指在不改变代码行为的前提下,重写代码,使其更加简洁、易于复用。 架构是指软件项目的各个不同部…

    编程技术 2025年3月10日
    200
  • CSS和JS实现唯美星空轨迹运动效果

    本文主要和大家分享一个使用css+js实现的唯美星空轨迹运动效果,效果非常逼真,下面小编给大家带来了实例代码,需要的朋友参考下,希望能帮助到大家。 先给大家分享效果图:   给大家分享一个使用CSS+JS实现的唯美星空轨迹运动效果, 这样的…

    2025年3月10日
    200

发表回复

登录后才能评论