1 回答

TA貢獻1725條經(jīng)驗 獲得超8個贊
我自己找到了解決問題的方法。我也必須更新 CSS stroke-dasharray。這是解決方案:
var roundPercent = 10;
//var round = document.querySelector('.round');
//round.setAttribute('data-percent', second * 10);
let play = true;
function togglePlay(){
if(!play){
playCount();
document.querySelector('button').innerHTML='Pause';
} else {
pauseCount();
document.querySelector('button').innerHTML='Play';
}
play = !play;
}
let myTimer;
function playCount() {
myTimer = setInterval(myCounter,1000);
}
function pauseCount() {
clearInterval(myTimer);
}
function myCounter (){
if(roundPercent == 0) {
clearInterval(myTimer);
}
var $round = $('.round'),
roundRadius = $round.find('circle').attr('r'),
roundCircum = 2 * roundRadius * Math.PI,
roundCalc = roundPercent *10,
roundDraw = roundCalc * roundCircum / 100
$round.css('stroke-dasharray', roundDraw + ' 999')
var round = document.querySelector('.round');
round.setAttribute('data-percent', roundCalc);
console.log('Hello World', roundCalc)
roundPercent--;
}
body {
margin: 0;
}
.point {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
.round {
transform: rotate(-90deg);
transition: all 1s ease-in-out;
/* SVG */
fill: none;
stroke: blue;
stroke-width: 8;
stroke-linecap: round;
stroke-dasharray: 0 999;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div class="point">
<svg class="round" viewbox="0 0 100 100" width="200" height="200" data-percent="100" style="stroke-dasharray: 251.327, 999;">
<circle cx="50" cy="50" r="40" />
</svg>
</div>
<button onclick="togglePlay()">Play</button>
添加回答
舉報