CSSでダイナミックな円グラフを作成しようとしましたが、50%未満から50%以上にアニメーション化したい、ここで40%から60%までのCSS円グラフアニメーション
は(私は、スタックのツールでSCSSを使用する方法を見つけることができませんでした)codepenです:http://codepen.io/mbrillaud/pen/NNgqYE
は、この影響を回避するためにそこにトリックか?
HTML
<div class="wrapper">
<div class="pie percent-10" id="pie"></div>
<div class="border"></div>
</div>
<div class="buttons">
<button data-value="10">10%</button>
<button data-value="20">20%</button>
<button data-value="30">30%</button>
<button data-value="40">40%</button>
<button data-value="50">50%</button>
<button data-value="60">60%</button>
<button data-value="70">70%</button>
<button data-value="80">80%</button>
<button data-value="90">90%</button>
<button data-value="100">100%</button>
</div>
CSS
@import 'compass';
body {
background-color: #2c333b;
}
.wrapper {
position: absolute;
top: 50%;
left: 50%;
width: 100px;
@include transform(translate(-50%, -50%));
.pie,
.border {
box-sizing: border-box;
position: absolute;
top: 0;
left: 0;
width: 100px;
height: 100px;
border-radius: 50%;
}
.pie {
background-color: #FDDED9;
background-image: linear-gradient(to right, transparent 50%, #ff4081 0);
&::before {
content: '';
display: block;
top: 0;
left: 50%;
width: 50%;
margin-left: 50%;
height: 100%;
border-radius: 0 100% 100% 0/50%;
background-color: inherit;
transform-origin: left;
transition: transform .2s linear;
}
&.percent-10::before {
transform: rotate(.1turn);
}
&.percent-20::before {
transform: rotate(.2turn);
}
&.percent-30::before {
transform: rotate(.3turn);
}
&.percent-40::before {
transform: rotate(.4turn);
}
&.percent-50::before {
transform: rotate(.5turn);
}
&.percent-60::before {
transform: rotate(.1turn);
background-color: #ff4081;
}
&.percent-70::before {
transform: rotate(.2turn);
background-color: #ff4081;
}
&.percent-80::before {
transform: rotate(.3turn);
background-color: #ff4081;
}
&.percent-90::before {
transform: rotate(.4turn);
background-color: #ff4081;
}
&.percent-100::before {
transform: rotate(.5turn);
background-color: #ff4081;
}
}
.border {
border: 5px solid #FDDED9
}
}
JS
$(document).ready(function() {
var $pie = $('#pie'),
className;
$('button').on('click', function() {
className = $pie.attr('class').match(/percent[\w-]*\b/);
$pie
.removeClass(className[0])
.addClass('percent-' + $(this).data('value'));
});
});
すごいです!私が必要とする正確に何か、ありがとうございます:) –