我有一個圓形的進度欄,並且想要在點擊div時更新它(以及它的跨度值)。點擊應該將輸入的值添加到var。我已經創建了這個小預覽。我的問題是var在點擊時似乎沒有改變。誰能幫忙?謝謝!jQuery:單擊時更改var
var calories = 1000;
var total = 2500;
var percentage = calories/total;
var pluscal = $('#quantity').val();
var span = $('#today-progress span').html(calories + '/' + total);
/* setInterval(() => {
calories = 0
}, 1000 * 60 * 60 * 24);
var today = new Date().getTime();
localStorage.setItem("today", today); */
$('#confirm-svg').click(function() {
calories = calories + pluscal;
$('#today-progress').circleProgress();
});
$('#today-progress').circleProgress({
value: percentage,
size: 300.0,
startAngle: -1.57,
thickness: 'auto',
fill: {
gradient: ['#CE6363', '#B23939'],
},
emptyFill: '#D6A0A0',
animation: {
duration: 3000,
easing: 'circleProgressEasing'
},
animationStartValue: 0.0,
reverse: false,
lineCap: 'round',
});
body {
font-family: Helvetica, sans-serif;
}
#today-progress {
z-index: 0;
position: relative;
top: 10px;
text-align: center;
}
#today-progress span {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
font-size: 45px;
}
svg {
width: 30px;
height: 30px;
margin: 5px 10px;
float: right;
fill: #000;
}
svg:active {
fill: red;
}
form {
margin-top: 20px;
margin-left: 20px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://rawgit.com/kottenator/jquery-circle-progress/1.2.2/dist/circle-progress.js"></script>
<div id="today-progress">
<span></span>
</div>
<form>
Quantity (between 1 and 1000):
<input type="number" id="quantity" min="1" max="1000">
</form>
<div id="confirm-svg">
<svg id="confirm-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" width="512px" height="512px" viewBox="0 0 305.002 305.002" style="enable-background:new 0 0 305.002 305.002;"
xml:space="preserve">
<g>
<g>
<path d="M152.502,0.001C68.412,0.001,0,68.412,0,152.501s68.412,152.5,152.502,152.5c84.089,0,152.5-68.411,152.5-152.5 S236.591,0.001,152.502,0.001z M152.502,280.001C82.197,280.001,25,222.806,25,152.501c0-70.304,57.197-127.5,127.502-127.5 c70.304,0,127.5,57.196,127.5,127.5C280.002,222.806,222.806,280.001,152.502,280.001z"
/>
<path d="M218.473,93.97l-90.546,90.547l-41.398-41.398c-4.882-4.881-12.796-4.881-17.678,0c-4.881,4.882-4.881,12.796,0,17.678 l50.237,50.237c2.441,2.44,5.64,3.661,8.839,3.661c3.199,0,6.398-1.221,8.839-3.661l99.385-99.385 c4.881-4.882,4.881-12.796,0-17.678C231.269,89.089,223.354,89.089,218.473,93.97z"
/>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>
</div>
(的jsfiddle here) 另外,如果有可能,我想重置該變種(卡路里),以每24小時0,你可以在這個在看我可憐的嘗試在js代碼發表評論。如果你能幫助我與,這將是真棒太:)
非常感謝!這工作,我完全忘記了parseInt的必要性..我在函數drawCircle中添加了跨度變化更新,所以只有這個函數可以調用,但你解決了它,謝謝:) –
對不起,我想接受你的答案,但有仍然重置問題沒有解決,如果我接受它,沒有人會去看它,如果這對你有好處,我會接受它 –
@MaëlleJumel你可以設置一個超時時間讓它在24小時後重置,但是誰是將在24小時等待您的網站只是爲了重置?如果你正在談論永久存儲,那是完全不同的,並且需要一個後端數據庫來維護你的數據。前端只關注視圖,應該從其他地方接收數據。它只是以一種友好的格式呈現數據。 – nbkhope