-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsliders.js
90 lines (58 loc) · 2.54 KB
/
sliders.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// Inputs:
var reproSlider = document.getElementById("reproRate");
var reproOut = document.getElementById("reproRateOut");
var immunePctOut = document.getElementById("immunePctOut");
var vaxSlider = document.getElementById("vaxRate");
var vaxPctOut = document.getElementById("vaxRatePctOut");
var vaxEffSlider = document.getElementById("vaxEff");
var vaxEffPctOut = document.getElementById("vaxEffPctOut");
// Outputs:
var bigUnvaxSickPctOut = document.getElementById("bigUnvaxSickPctOut");
var bigSickPctOut = document.getElementById("bigSickPctOut");
var bigVaxSickPctOut = document.getElementById("bigVaxSickPctOut");
var herdOut = document.getElementById("herdOut");
var totalImmunePctOut = document.getElementById("totalImmunePctOut");
var vaxImmunePctOut = document.getElementById("vaxImmunePctOut");
var sickPctOut = document.getElementById("sickPctOut");
var unvaxSickPctOut = document.getElementById("unvaxSickPctOut");
var vaxSickPctOut = document.getElementById("vaxSickPctOut");
var noHerd = document.getElementById("noHerd");
// Plumbing
recalc = function() {
reproRate = reproSlider.value;
immuneThresholdPct = 100 * (1 - (1/reproRate));
vaxPct = vaxSlider.value;
vaxEffPct = vaxEffSlider.value;
unvaxPct = 100 - vaxSlider.value;
vaxImmunePct = vaxPct * vaxEffPct / 100;
immunePct = Math.max(immuneThresholdPct, vaxImmunePct);
gotSickPct = immunePct - vaxImmunePct;
unvaxSickPct = 100 * gotSickPct / unvaxPct
vulnPct = 100 - vaxImmunePct;
sickIfVulnPct = 100 * (gotSickPct / vulnPct);
sickIfVaxPct = sickIfVulnPct * (100 - vaxEffPct) / 100;
// Set Outputs
reproOut.innerHTML = reproRate;
immunePctOut.innerHTML = (immuneThresholdPct).toFixed(1);
vaxPctOut.innerHTML = vaxPct;
vaxEffPctOut.innerHTML = vaxEffPct;
if (immunePct > immuneThresholdPct) {
herdOut.innerHTML = "No";
noHerd.innerHTML = "<h2 style=\"color:red\">At these vaccination levels we exceed immunity levels. People only got sick because we didn't get here fast enough.</h2>";
} else {
herdOut.innerHTML = "Yes";
noHerd.innerHTML = "";
}
totalImmunePctOut.innerHTML = (immunePct).toFixed(1);
vaxImmunePctOut.innerHTML = vaxImmunePct;
sickPctOut.innerHTML = (gotSickPct).toFixed(1);
bigSickPctOut.innerHTML = (gotSickPct).toFixed(1);
unvaxSickPctOut.innerHTML = (sickIfVulnPct).toFixed(1);
bigUnvaxSickPctOut.innerHTML = (sickIfVulnPct).toFixed(1);
vaxSickPctOut.innerHTML = (sickIfVaxPct).toFixed(1);
bigVaxSickPctOut.innerHTML = (sickIfVaxPct).toFixed(1);
}
recalc()
reproSlider.oninput = recalc
vaxSlider.oninput = recalc
vaxEffSlider.oninput = recalc