基于css3的环形动态进度条(原创)

  基于css3实现的环形动态加载条,也用到了jquery。当时的想法是通过两个半圆的转动,来实现相应的效果,其实用css3的animation也可以实现这种效果。之所以用jquery是因为通过jquery可以在网站中动态改变加载的百分比。同时,用如果单纯用css3的animation的话扩展性太差,因为你要先确定出百分比是多少,而如果百分比超过一半时,左边的半圆也需转动,单纯用animation就太复杂了。

  另外,svg和canvas都可以实现这样的效果。canvas的话我感觉原理应该差不多。有人提到通过大量的图片来实现应该也可以。

代码没有封装,封装的话可以做成一个插件。

<!DOCTYPE html>
<html>
<head>
	<title>circle loading</title>
	<style>
		.cricle{
			width:200px;height:200px;background:#0cc;
			border-radius:50%;position:absolute;
		}
		.pre_left, .pre_right {
    		width: 200px;
    		height: 200px;
    		position: absolute;
    		top: 0;left: 0;
		}
		.left,.right{
			display:block;
			width:200px;height:200px;background:#00aacc;
			position:absolute;top:0;left:0;border-radius:50%;
		}
		.pre_right, .right {
    		clip:rect(0,auto,auto,100px);
		}
		.pre_left, .left {
    		clip:rect(0,100px,auto,0);
		}
		.mask{
			width:150px;height:150px;background:#fff;border-radius:50%;
			position:absolute;top:25px;left:25px;
			line-height:150px;text-align:center;color:#00aacc;font-size:30px;
		}

	</style>
</head>
<body>
		<div class="cricle">
			<div class="pre_left"><div class="left"></div></div>
			<div class="pre_right"><div class="right"></div></div>
			<div class="mask"><span>0</span>%</div>
		</div>
		<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
		<script>
			function criclefn(num){
				var degree=num*3.6;
				if(degree>360) degree=360;
				if(degree<0) degree=0;

				$({property:0}).animate({property:100},
					{
						duration:600,
						step:function(){
							var deg=this.property/100*degree;
							var percent=parseInt(this.property/100*num)+1;
							if (deg<=180) {
								$(".right").css("-webkit-transform","rotate("+deg+"deg)");
								$(".mask span").text(percent);
							}else{
								$(".cricle").css("background-color","orange");
								$(".mask").css("color","orange");
								deg=deg-180;
								$(".right").css("-webkit-transform","rotate("+180+"deg)");
								$(".left").css("-webkit-transform","rotate("+deg+"deg)");
								$(".mask span").text(percent);
							}
						}
				});

			}
			$(function($){
				criclefn(70);

			});
		</script>
</body>
</html>
时间: 2024-10-14 01:30:52

基于css3的环形动态进度条(原创)的相关文章

svg和css3创建环形渐变进度条

在负责的项目中,有一个环形渐变读取进度的效果的需求,于是在网上查阅相关资料整理一下.代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="https://code.jquery.com/jquery-3.1.1.min.js&qu

基于jQuery网页步骤流程进度条代码

基于jQuery网页步骤流程进度条代码里面包含两款不同效果的jQuery步骤进度条特效.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="step_context test"></div> 当前步骤:第<input type="text" value="5" id="currentStepVal" />步 <button onclick=&qu

超简单CSS3水平动态进度条+小圆球+背景色渐变

实现的的效果图如下:效果是动态加载的 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="

Android 自定义View——动态进度条

效果图: 这个是看了梁肖的demo,根据他的思路自己写了一个,但是我写的这个貌似计算还是有些问题,从上面的图就可以看出来,左侧.顶部.右侧的线会有被截掉的部分,有懂得希望能给说一下,改进一下,这个过程还是有点曲折的,不过还是觉得收获挺多的.比如通动画来进行动态的展示(之前做的都是通过Handler进行更新的所以现在换一种思路觉得特别好),还有圆弧的起止角度,矩形区域的计算等!关于绘制我们可以循序渐进,比如最开始先画圆,然后再画周围的线,最后设置动画部分就可以了.不多说了,上代码了. 代码 自定义

【iOS】环形渐变进度条实现

之前有人在找渐变进度条的效果,闲来无事就顺手写了一个,然后画了视图层级,方便讲解. 环境信息: Mac OS X 10.10.3 Xcode 6.3.1 iOS 8.3 效果图: 源码下载地址: https://github.com/saitjr/LoopProgressDemo.git 正文 一.视图层级 首先需要搞定的就是视图层级关系.可以看到, 1. 背景是有透明度的蓝色(blueView) 2. 需要一个从绿->黄->红的渐变色,那个这里我采用的是Layer(colorLayer) 3

Android 基于帧布局实现一个进度条 FrameLayout+ProgressBar

在FrameLayout中添加一个ProgressBar居中 <ProgressBar android:layout_gravity="center" android:id="@+id/progressBar1" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height=&qu

bootstrap与jQuery结合的动态进度条

此款进度条实现的功能: 1.利用了bootstrap的进度条组件. a.在最外层的<div>中加入class .progress,在里层<div>加入class .progress-bar从而实现基本的进度条. b.在外层<div>中加入class .progress-striped实现条纹进度条. c.在内层<div>加入class .progress-bar-danger/warning/info/success 从而实现红色.黄色.蓝色.绿色 d.在外

详解用CSS3制作圆形滚动进度条动画效果

内  容 先看一下效果图,会提升我们的学习兴趣哟: 对于圆形效果是重点,我将详细讲解. 第一种效果: html结构: <div id="progress"> <span></span> </div> css样式: #progress{ width: 50%; height: 30px; border:1px solid #ccc; border-radius: 15px; margin: 50px 0 0 100px; overflow:

基于jQuery漂亮的圆形进度条倒计时插件

jQuery Final Countdown是一款时尚的圆形进度条样式的jQuery倒计时插件.该倒计时插件可以显示倒计时的秒.分钟.小时和天数.它采用圆形进度条来作为倒计时的动画,非常的时尚大方. 在线预览   源码下载 使用方法 该倒计时插件依赖于jQuery和KineticJS-一个HTML5 Canvas库.使用是要将它们引入. <script type="text/javascript" src="js/jquery.min.js"></