html – 使用css动画旋转圆(百分比)

前端之家收集整理的这篇文章主要介绍了html – 使用css动画旋转圆(百分比)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何制作以下网站 http://www.awwwards.com/上的旋转圆圈

对于我的网站,我不需要它是动态的.至少不是这个时候.我尝试了不同的解决方案,包括Javascript和CSS,但我不确定创建它的最佳方法是什么.

  1. -moz-transform: rotate(270);
  2. -webkit-transform: rotate(270);
  3. -o-transform:rotate(270deg);
  4. transform: rotate(270deg);
  5. transition: all 2s;

这几乎是关于过渡的全部知识,但我认为足够了.但是,在过渡开始之前,我必须把蛋糕的“馅饼”切掉,对吧?

谁知道我应该从哪里开始?

解决方法

您可以阅读这篇文章并查看一个工作示例,甚至了解它是如何工作的 css-pie-timer

UPDATE

我不喜欢那个解决方案,所以我试着用自己的方式实现它并提供一点帮助(我在这里问了几个问题)我设法做得非常优雅.

主要思想是了解如何绘制圆形扇区,然后开始绘制程度为0的部分,直到达到所需的程度.

我也让它变得可逆,只是为了好玩:).

HTML

  1. <div class="container">
  2. <div id="activeBorder" class="active-border">
  3. <div id="circle" class="circle">
  4. <span class="prec 270" id="prec">0%</span>
  5. </div>
  6. </div>
  7. </div>

活动边框将替换为当前百分比.在此示例中,预跨度将包含文本百分比以及所需的总度数(270).当我实现它时,百分比需要是第二类.

CSS

这是棘手的部分.这是棘手的部分.我以这种方式绘制扇区:

  1. .active-border{
  2. position: relative;
  3. text-align: center;
  4. width: 110px;
  5. height: 110px;
  6. border-radius: 100%;
  7. background-color:#39B4CC;
  8. background-image:
  9. linear-gradient(91deg,transparent 50%,#A2ECFB 50%),linear-gradient(90deg,#A2ECFB 50%,transparent 50%);
  10. }

说明:第一个线性渐变值将是90所示的度数.
如果度数大于180,我们将第一个线性渐变颜色设置为活动颜色.

JQuery的

  1. function loopit(dir){
  2. // choose direction
  3. if (dir == "c")
  4. i++
  5. else
  6. i--;
  7. // stop condition
  8. if (i < 0)
  9. i = 0;
  10. if (i > degs)
  11. i = degs;
  12.  
  13. // calculate and set the percentage text
  14. prec = (100*i)/360;
  15. $(".prec").html(Math.round(prec)+"%");
  16.  
  17. if (i<=180){
  18. activeBorder.css('background-image','linear-gradient(' + (90+i) + 'deg,transparent 50%)');
  19. }
  20. else{
  21. activeBorder.css('background-image','linear-gradient(' + (i-90) + 'deg,#39B4CC 50%),transparent 50%)');
  22. }
  23.  
  24. // recursive call
  25. setTimeout(function(){
  26. if($("#circle").is(":hover"))
  27. loopit("c");
  28. else
  29. loopit("nc");
  30. },1);
  31. }

这是一个working demo

注意它适用于firefox和chrome.您必须为线性渐变添加IE支持.

猜你在找的HTML相关文章