Fix #9: Adjust CSS for iOS, add fallback JS for Android < 4.4

(with warning message in settings about old OS)
This commit is contained in:
Skylar Ittner 2016-10-06 23:46:46 -06:00
parent 0edb1cadcb
commit 5eb299b7c7
4 changed files with 322 additions and 160 deletions

View File

@ -488,6 +488,109 @@ body {
z-index: 90000;
}
@-webkit-keyframes cooldown-fade {
0% { background: linear-gradient(to top, rgba(255,255,255,.8) 0%, rgba(0,0,0,.8) 0%); }
1% { background: linear-gradient(to top, rgba(255,255,255,.8) 1%, rgba(0,0,0,.8) 0%); }
2% { background: linear-gradient(to top, rgba(255,255,255,.8) 2%, rgba(0,0,0,.8) 0%); }
3% { background: linear-gradient(to top, rgba(255,255,255,.8) 3%, rgba(0,0,0,.8) 0%); }
4% { background: linear-gradient(to top, rgba(255,255,255,.8) 4%, rgba(0,0,0,.8) 0%); }
5% { background: linear-gradient(to top, rgba(255,255,255,.8) 5%, rgba(0,0,0,.8) 0%); }
6% { background: linear-gradient(to top, rgba(255,255,255,.8) 6%, rgba(0,0,0,.8) 0%); }
7% { background: linear-gradient(to top, rgba(255,255,255,.8) 7%, rgba(0,0,0,.8) 0%); }
8% { background: linear-gradient(to top, rgba(255,255,255,.8) 8%, rgba(0,0,0,.8) 0%); }
9% { background: linear-gradient(to top, rgba(255,255,255,.8) 9%, rgba(0,0,0,.8) 0%); }
10% { background: linear-gradient(to top, rgba(255,255,255,.8) 10%, rgba(0,0,0,.8) 0%); }
11% { background: linear-gradient(to top, rgba(255,255,255,.8) 11%, rgba(0,0,0,.8) 0%); }
12% { background: linear-gradient(to top, rgba(255,255,255,.8) 12%, rgba(0,0,0,.8) 0%); }
13% { background: linear-gradient(to top, rgba(255,255,255,.8) 13%, rgba(0,0,0,.8) 0%); }
14% { background: linear-gradient(to top, rgba(255,255,255,.8) 14%, rgba(0,0,0,.8) 0%); }
15% { background: linear-gradient(to top, rgba(255,255,255,.8) 15%, rgba(0,0,0,.8) 0%); }
16% { background: linear-gradient(to top, rgba(255,255,255,.8) 16%, rgba(0,0,0,.8) 0%); }
17% { background: linear-gradient(to top, rgba(255,255,255,.8) 17%, rgba(0,0,0,.8) 0%); }
18% { background: linear-gradient(to top, rgba(255,255,255,.8) 18%, rgba(0,0,0,.8) 0%); }
19% { background: linear-gradient(to top, rgba(255,255,255,.8) 19%, rgba(0,0,0,.8) 0%); }
20% { background: linear-gradient(to top, rgba(255,255,255,.8) 20%, rgba(0,0,0,.8) 0%); }
21% { background: linear-gradient(to top, rgba(255,255,255,.8) 21%, rgba(0,0,0,.8) 0%); }
22% { background: linear-gradient(to top, rgba(255,255,255,.8) 22%, rgba(0,0,0,.8) 0%); }
23% { background: linear-gradient(to top, rgba(255,255,255,.8) 23%, rgba(0,0,0,.8) 0%); }
24% { background: linear-gradient(to top, rgba(255,255,255,.8) 24%, rgba(0,0,0,.8) 0%); }
25% { background: linear-gradient(to top, rgba(255,255,255,.8) 25%, rgba(0,0,0,.8) 0%); }
26% { background: linear-gradient(to top, rgba(255,255,255,.8) 26%, rgba(0,0,0,.8) 0%); }
27% { background: linear-gradient(to top, rgba(255,255,255,.8) 27%, rgba(0,0,0,.8) 0%); }
28% { background: linear-gradient(to top, rgba(255,255,255,.8) 28%, rgba(0,0,0,.8) 0%); }
29% { background: linear-gradient(to top, rgba(255,255,255,.8) 29%, rgba(0,0,0,.8) 0%); }
30% { background: linear-gradient(to top, rgba(255,255,255,.8) 30%, rgba(0,0,0,.8) 0%); }
31% { background: linear-gradient(to top, rgba(255,255,255,.8) 31%, rgba(0,0,0,.8) 0%); }
32% { background: linear-gradient(to top, rgba(255,255,255,.8) 32%, rgba(0,0,0,.8) 0%); }
33% { background: linear-gradient(to top, rgba(255,255,255,.8) 33%, rgba(0,0,0,.8) 0%); }
34% { background: linear-gradient(to top, rgba(255,255,255,.8) 34%, rgba(0,0,0,.8) 0%); }
35% { background: linear-gradient(to top, rgba(255,255,255,.8) 35%, rgba(0,0,0,.8) 0%); }
36% { background: linear-gradient(to top, rgba(255,255,255,.8) 36%, rgba(0,0,0,.8) 0%); }
37% { background: linear-gradient(to top, rgba(255,255,255,.8) 37%, rgba(0,0,0,.8) 0%); }
38% { background: linear-gradient(to top, rgba(255,255,255,.8) 38%, rgba(0,0,0,.8) 0%); }
39% { background: linear-gradient(to top, rgba(255,255,255,.8) 39%, rgba(0,0,0,.8) 0%); }
40% { background: linear-gradient(to top, rgba(255,255,255,.8) 40%, rgba(0,0,0,.8) 0%); }
41% { background: linear-gradient(to top, rgba(255,255,255,.8) 41%, rgba(0,0,0,.8) 0%); }
42% { background: linear-gradient(to top, rgba(255,255,255,.8) 42%, rgba(0,0,0,.8) 0%); }
43% { background: linear-gradient(to top, rgba(255,255,255,.8) 43%, rgba(0,0,0,.8) 0%); }
44% { background: linear-gradient(to top, rgba(255,255,255,.8) 44%, rgba(0,0,0,.8) 0%); }
45% { background: linear-gradient(to top, rgba(255,255,255,.8) 45%, rgba(0,0,0,.8) 0%); }
46% { background: linear-gradient(to top, rgba(255,255,255,.8) 46%, rgba(0,0,0,.8) 0%); }
47% { background: linear-gradient(to top, rgba(255,255,255,.8) 47%, rgba(0,0,0,.8) 0%); }
48% { background: linear-gradient(to top, rgba(255,255,255,.8) 48%, rgba(0,0,0,.8) 0%); }
49% { background: linear-gradient(to top, rgba(255,255,255,.8) 49%, rgba(0,0,0,.8) 0%); }
50% { background: linear-gradient(to top, rgba(255,255,255,.8) 50%, rgba(0,0,0,.8) 0%); }
51% { background: linear-gradient(to top, rgba(255,255,255,.8) 51%, rgba(0,0,0,.8) 0%); }
52% { background: linear-gradient(to top, rgba(255,255,255,.8) 52%, rgba(0,0,0,.8) 0%); }
53% { background: linear-gradient(to top, rgba(255,255,255,.8) 53%, rgba(0,0,0,.8) 0%); }
54% { background: linear-gradient(to top, rgba(255,255,255,.8) 54%, rgba(0,0,0,.8) 0%); }
55% { background: linear-gradient(to top, rgba(255,255,255,.8) 55%, rgba(0,0,0,.8) 0%); }
56% { background: linear-gradient(to top, rgba(255,255,255,.8) 56%, rgba(0,0,0,.8) 0%); }
57% { background: linear-gradient(to top, rgba(255,255,255,.8) 57%, rgba(0,0,0,.8) 0%); }
58% { background: linear-gradient(to top, rgba(255,255,255,.8) 58%, rgba(0,0,0,.8) 0%); }
59% { background: linear-gradient(to top, rgba(255,255,255,.8) 59%, rgba(0,0,0,.8) 0%); }
60% { background: linear-gradient(to top, rgba(255,255,255,.8) 60%, rgba(0,0,0,.8) 0%); }
61% { background: linear-gradient(to top, rgba(255,255,255,.8) 61%, rgba(0,0,0,.8) 0%); }
62% { background: linear-gradient(to top, rgba(255,255,255,.8) 62%, rgba(0,0,0,.8) 0%); }
63% { background: linear-gradient(to top, rgba(255,255,255,.8) 63%, rgba(0,0,0,.8) 0%); }
64% { background: linear-gradient(to top, rgba(255,255,255,.8) 64%, rgba(0,0,0,.8) 0%); }
65% { background: linear-gradient(to top, rgba(255,255,255,.8) 65%, rgba(0,0,0,.8) 0%); }
66% { background: linear-gradient(to top, rgba(255,255,255,.8) 66%, rgba(0,0,0,.8) 0%); }
67% { background: linear-gradient(to top, rgba(255,255,255,.8) 67%, rgba(0,0,0,.8) 0%); }
68% { background: linear-gradient(to top, rgba(255,255,255,.8) 68%, rgba(0,0,0,.8) 0%); }
69% { background: linear-gradient(to top, rgba(255,255,255,.8) 69%, rgba(0,0,0,.8) 0%); }
70% { background: linear-gradient(to top, rgba(255,255,255,.8) 70%, rgba(0,0,0,.8) 0%); }
71% { background: linear-gradient(to top, rgba(255,255,255,.8) 71%, rgba(0,0,0,.8) 0%); }
72% { background: linear-gradient(to top, rgba(255,255,255,.8) 72%, rgba(0,0,0,.8) 0%); }
73% { background: linear-gradient(to top, rgba(255,255,255,.8) 73%, rgba(0,0,0,.8) 0%); }
74% { background: linear-gradient(to top, rgba(255,255,255,.8) 74%, rgba(0,0,0,.8) 0%); }
75% { background: linear-gradient(to top, rgba(255,255,255,.8) 75%, rgba(0,0,0,.8) 0%); }
76% { background: linear-gradient(to top, rgba(255,255,255,.8) 76%, rgba(0,0,0,.8) 0%); }
77% { background: linear-gradient(to top, rgba(255,255,255,.8) 77%, rgba(0,0,0,.8) 0%); }
78% { background: linear-gradient(to top, rgba(255,255,255,.8) 78%, rgba(0,0,0,.8) 0%); }
79% { background: linear-gradient(to top, rgba(255,255,255,.8) 79%, rgba(0,0,0,.8) 0%); }
80% { background: linear-gradient(to top, rgba(255,255,255,.8) 80%, rgba(0,0,0,.8) 0%); }
81% { background: linear-gradient(to top, rgba(255,255,255,.8) 81%, rgba(0,0,0,.8) 0%); }
82% { background: linear-gradient(to top, rgba(255,255,255,.8) 82%, rgba(0,0,0,.8) 0%); }
83% { background: linear-gradient(to top, rgba(255,255,255,.8) 83%, rgba(0,0,0,.8) 0%); }
84% { background: linear-gradient(to top, rgba(255,255,255,.8) 84%, rgba(0,0,0,.8) 0%); }
85% { background: linear-gradient(to top, rgba(255,255,255,.8) 85%, rgba(0,0,0,.8) 0%); }
86% { background: linear-gradient(to top, rgba(255,255,255,.8) 86%, rgba(0,0,0,.8) 0%); }
87% { background: linear-gradient(to top, rgba(255,255,255,.8) 87%, rgba(0,0,0,.8) 0%); }
88% { background: linear-gradient(to top, rgba(255,255,255,.8) 88%, rgba(0,0,0,.8) 0%); }
89% { background: linear-gradient(to top, rgba(255,255,255,.8) 89%, rgba(0,0,0,.8) 0%); }
90% { background: linear-gradient(to top, rgba(255,255,255,.8) 90%, rgba(0,0,0,.8) 0%); }
91% { background: linear-gradient(to top, rgba(255,255,255,.8) 91%, rgba(0,0,0,.8) 0%); }
92% { background: linear-gradient(to top, rgba(255,255,255,.8) 92%, rgba(0,0,0,.8) 0%); }
93% { background: linear-gradient(to top, rgba(255,255,255,.8) 93%, rgba(0,0,0,.8) 0%); }
94% { background: linear-gradient(to top, rgba(255,255,255,.8) 94%, rgba(0,0,0,.8) 0%); }
95% { background: linear-gradient(to top, rgba(255,255,255,.8) 95%, rgba(0,0,0,.8) 0%); }
96% { background: linear-gradient(to top, rgba(255,255,255,.8) 96%, rgba(0,0,0,.8) 0%); }
97% { background: linear-gradient(to top, rgba(255,255,255,.8) 97%, rgba(0,0,0,.8) 0%); }
98% { background: linear-gradient(to top, rgba(255,255,255,.8) 98%, rgba(0,0,0,.8) 0%); }
99% { background: linear-gradient(to top, rgba(255,255,255,.8) 99%, rgba(0,0,0,.8) 0%); }
100% { background: linear-gradient(to top, rgba(255,255,255,.8) 100%, rgba(0,0,0,.8) 0%); }
}
@keyframes cooldown-fade {
/* Apparently gradients don't animate. We'll see about that! */
@ -599,112 +702,8 @@ body {
100% { background: linear-gradient(to top, rgba(255,255,255,.8) 100%, rgba(0,0,0,.8) 0%); }
}
@-webkit-keyframes cooldown-fade {
0% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 0%, rgba(0,0,0,.8) 0%); }
1% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 1%, rgba(0,0,0,.8) 0%); }
2% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 2%, rgba(0,0,0,.8) 0%); }
3% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 3%, rgba(0,0,0,.8) 0%); }
4% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 4%, rgba(0,0,0,.8) 0%); }
5% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 5%, rgba(0,0,0,.8) 0%); }
6% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 6%, rgba(0,0,0,.8) 0%); }
7% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 7%, rgba(0,0,0,.8) 0%); }
8% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 8%, rgba(0,0,0,.8) 0%); }
9% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 9%, rgba(0,0,0,.8) 0%); }
10% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 10%, rgba(0,0,0,.8) 0%); }
11% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 11%, rgba(0,0,0,.8) 0%); }
12% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 12%, rgba(0,0,0,.8) 0%); }
13% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 13%, rgba(0,0,0,.8) 0%); }
14% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 14%, rgba(0,0,0,.8) 0%); }
15% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 15%, rgba(0,0,0,.8) 0%); }
16% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 16%, rgba(0,0,0,.8) 0%); }
17% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 17%, rgba(0,0,0,.8) 0%); }
18% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 18%, rgba(0,0,0,.8) 0%); }
19% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 19%, rgba(0,0,0,.8) 0%); }
20% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 20%, rgba(0,0,0,.8) 0%); }
21% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 21%, rgba(0,0,0,.8) 0%); }
22% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 22%, rgba(0,0,0,.8) 0%); }
23% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 23%, rgba(0,0,0,.8) 0%); }
24% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 24%, rgba(0,0,0,.8) 0%); }
25% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 25%, rgba(0,0,0,.8) 0%); }
26% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 26%, rgba(0,0,0,.8) 0%); }
27% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 27%, rgba(0,0,0,.8) 0%); }
28% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 28%, rgba(0,0,0,.8) 0%); }
29% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 29%, rgba(0,0,0,.8) 0%); }
30% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 30%, rgba(0,0,0,.8) 0%); }
31% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 31%, rgba(0,0,0,.8) 0%); }
32% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 32%, rgba(0,0,0,.8) 0%); }
33% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 33%, rgba(0,0,0,.8) 0%); }
34% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 34%, rgba(0,0,0,.8) 0%); }
35% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 35%, rgba(0,0,0,.8) 0%); }
36% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 36%, rgba(0,0,0,.8) 0%); }
37% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 37%, rgba(0,0,0,.8) 0%); }
38% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 38%, rgba(0,0,0,.8) 0%); }
39% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 39%, rgba(0,0,0,.8) 0%); }
40% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 40%, rgba(0,0,0,.8) 0%); }
41% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 41%, rgba(0,0,0,.8) 0%); }
42% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 42%, rgba(0,0,0,.8) 0%); }
43% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 43%, rgba(0,0,0,.8) 0%); }
44% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 44%, rgba(0,0,0,.8) 0%); }
45% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 45%, rgba(0,0,0,.8) 0%); }
46% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 46%, rgba(0,0,0,.8) 0%); }
47% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 47%, rgba(0,0,0,.8) 0%); }
48% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 48%, rgba(0,0,0,.8) 0%); }
49% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 49%, rgba(0,0,0,.8) 0%); }
50% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 50%, rgba(0,0,0,.8) 0%); }
51% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 51%, rgba(0,0,0,.8) 0%); }
52% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 52%, rgba(0,0,0,.8) 0%); }
53% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 53%, rgba(0,0,0,.8) 0%); }
54% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 54%, rgba(0,0,0,.8) 0%); }
55% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 55%, rgba(0,0,0,.8) 0%); }
56% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 56%, rgba(0,0,0,.8) 0%); }
57% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 57%, rgba(0,0,0,.8) 0%); }
58% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 58%, rgba(0,0,0,.8) 0%); }
59% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 59%, rgba(0,0,0,.8) 0%); }
60% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 60%, rgba(0,0,0,.8) 0%); }
61% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 61%, rgba(0,0,0,.8) 0%); }
62% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 62%, rgba(0,0,0,.8) 0%); }
63% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 63%, rgba(0,0,0,.8) 0%); }
64% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 64%, rgba(0,0,0,.8) 0%); }
65% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 65%, rgba(0,0,0,.8) 0%); }
66% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 66%, rgba(0,0,0,.8) 0%); }
67% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 67%, rgba(0,0,0,.8) 0%); }
68% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 68%, rgba(0,0,0,.8) 0%); }
69% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 69%, rgba(0,0,0,.8) 0%); }
70% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 70%, rgba(0,0,0,.8) 0%); }
71% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 71%, rgba(0,0,0,.8) 0%); }
72% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 72%, rgba(0,0,0,.8) 0%); }
73% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 73%, rgba(0,0,0,.8) 0%); }
74% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 74%, rgba(0,0,0,.8) 0%); }
75% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 75%, rgba(0,0,0,.8) 0%); }
76% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 76%, rgba(0,0,0,.8) 0%); }
77% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 77%, rgba(0,0,0,.8) 0%); }
78% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 78%, rgba(0,0,0,.8) 0%); }
79% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 79%, rgba(0,0,0,.8) 0%); }
80% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 80%, rgba(0,0,0,.8) 0%); }
81% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 81%, rgba(0,0,0,.8) 0%); }
82% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 82%, rgba(0,0,0,.8) 0%); }
83% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 83%, rgba(0,0,0,.8) 0%); }
84% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 84%, rgba(0,0,0,.8) 0%); }
85% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 85%, rgba(0,0,0,.8) 0%); }
86% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 86%, rgba(0,0,0,.8) 0%); }
87% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 87%, rgba(0,0,0,.8) 0%); }
88% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 88%, rgba(0,0,0,.8) 0%); }
89% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 89%, rgba(0,0,0,.8) 0%); }
90% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 90%, rgba(0,0,0,.8) 0%); }
91% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 91%, rgba(0,0,0,.8) 0%); }
92% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 92%, rgba(0,0,0,.8) 0%); }
93% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 93%, rgba(0,0,0,.8) 0%); }
94% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 94%, rgba(0,0,0,.8) 0%); }
95% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 95%, rgba(0,0,0,.8) 0%); }
96% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 96%, rgba(0,0,0,.8) 0%); }
97% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 97%, rgba(0,0,0,.8) 0%); }
98% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 98%, rgba(0,0,0,.8) 0%); }
99% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 99%, rgba(0,0,0,.8) 0%); }
100% { background: -webkit-linear-gradient(to top, rgba(255,255,255,.8) 100%, rgba(0,0,0,.8) 0%); }
}
/* To change cooldown time, also change CODE_SCAN_COOLDOWN_SECONDS in main.js */
.cooldown-fade-anim {
/* To change cooldown time, also change CODE_SCAN_COOLDOWN_SECONDS in main.js */
animation: cooldown-fade 15s ease-in-out;
-webkit-animation: cooldown-fade 15s ease-in-out;
animation: cooldown-fade 15s ease-in-out;
}

View File

@ -56,6 +56,46 @@ function onDeviceReady() {
});
}
// Depending on the device, a few examples are:
// - "Android"
// - "BlackBerry"
// - "iOS"
// - "webOS"
// - "WinCE"
// - "Tizen"
var DEVICE_ANDROID = 0;
var DEVICE_GOOGLEPLAY = 1;
var DEVICE_IOS = 2;
var DEVICE_WEB = 3;
var DEVICE_WINDOWS_PHONE = 5;
var DEVICE_WINDOWS = 6;
var DEVICE_OTHER = 10;
function getPlatform() {
var devicePlatform = device.platform;
switch (devicePlatform) {
case 'Android':
return DEVICE_ANDROID;
case 'iOS':
return DEVICE_IOS;
case 'WinCE':
return DEVICE_WINDOWS_PHONE;
case 'Win32NT':
return DEVICE_WINDOWS_PHONE;
case 'Windows':
return DEVICE_WINDOWS;
case 'browser':
return DEVICE_WEB;
default:
return DEVICE_OTHER;
}
}
function getDeviceVersion() {
return device.version;
}
/**
* Compare two version strings.
* http://stackoverflow.com/a/16187766/2534036
@ -192,6 +232,34 @@ function closemodal(modalselector) {
var scanCodeEnabled = true;
function startCooldown() {
// don't do animation on old stuff
if (getPlatform() === DEVICE_ANDROID && compareVersions(getDeviceVersion(), "4.4") < 0) {
fallback_anim('#codescanbtn', 0, CODE_SCAN_COOLDOWN_SECONDS, 1000);
} else {
$('#codescanbtn').addClass('cooldown-fade-anim');
}
setTimeout(function () {
endCooldown();
}, CODE_SCAN_COOLDOWN_SECONDS * 1000);
}
function fallback_anim(selector, currstep, maxstep, interval) {
var cval = Math.round((currstep / maxstep) * 255);
$(selector).css('background-color', 'rgba(' + cval + ',' + cval + ',' + cval + ',.8)');
if (currstep < maxstep) {
setTimeout(function () {
fallback_anim(selector, currstep + 1, maxstep, interval);
}, intervalsecs);
}
}
function endCooldown() {
scanCodeEnabled = true;
$('#codescanbtn').removeClass('cooldown-fade-anim');
$('#codescanbtn').css('background-color', 'rgba(255,255,255,.8)');
}
function scanCode() {
// If code scanning disabled (cooldown, etc)
if (!scanCodeEnabled) {
@ -201,7 +269,7 @@ function scanCode() {
cordova.plugins.barcodeScanner.scan(
function (result) {
if (!result.cancelled) {
scanCodeEnabled = false;
startCooldown();
$.getJSON(mkApiUrl('code2item', 'gs'), {
code: result.text,
latitude: latitude,
@ -209,24 +277,17 @@ function scanCode() {
accuracy: gpsaccuracy
}, function (data) {
if (data.status === 'OK') {
$('#codescanbtn').addClass('cooldown-fade-anim');
setTimeout(function () {
scanCodeEnabled = true;
$('#codescanbtn').removeClass('cooldown-fade-anim');
}, CODE_SCAN_COOLDOWN_SECONDS * 1000);
if (data.messages.length >= 2) {
showFoundBox2(data.messages[0].title, data.messages[0].text, data.messages[1].title, data.messages[1].text);
} else {
showFoundBox(data.messages[0].title, data.messages[0].text);
}
} else {
scanCodeEnabled = true;
$('#codescanbtn').removeClass('cooldown-fade-anim');
endCooldown();
showFoundBox("Huh?", data.message);
}
}).fail(function () {
scanCodeEnabled = true;
$('#codescanbtn').removeClass('cooldown-fade-anim');
endCooldown();
showFoundBox("Huh?", "Nothing happened!");
//navigator.notification.alert("Nothing happened!", null, "Huh?", 'OK');
});
@ -234,8 +295,7 @@ function scanCode() {
}
},
function (error) {
scanCodeEnabled = true;
$('#codescanbtn').removeClass('cooldown-fade-anim');
endCooldown();
navigator.notification.alert("Scanning failed: " + error, null, "Error", 'Dismiss');
},
{
@ -324,10 +384,11 @@ function getTeamColorFromId(id) {
*/
function getWwwFolderPath() {
var path = window.location.pathname;
var sizefilename = path.length - (path.lastIndexOf("/")+1);
path = path.substr( path, path.length - sizefilename );
var sizefilename = path.length - (path.lastIndexOf("/") + 1);
path = path.substr(path, path.length - sizefilename);
return path;
};
}
;
// Handle back button to close things
document.addEventListener("backbutton", function (event) {
@ -339,4 +400,117 @@ document.addEventListener("backbutton", function (event) {
} else if ($('#chatmsgs').css('display') !== 'none') {
toggleChat();
}
}, false);
}, false);
/*
* Konami-JS ~
* :: Now with support for touch events and multiple instances for
* :: those situations that call for multiple easter eggs!
* Code: https://github.com/snaptortoise/konami-js
* Examples: http://www.snaptortoise.com/konami-js
* Copyright (c) 2009 George Mandis (georgemandis.com, snaptortoise.com)
* Version: 1.4.6 (3/2/2016)
* Licensed under the MIT License (http://opensource.org/licenses/MIT)
* Tested in: Safari 4+, Google Chrome 4+, Firefox 3+, IE7+, Mobile Safari 2.2.1 and Dolphin Browser
*/
var Konami = function (callback) {
var konami = {
addEvent: function (obj, type, fn, ref_obj) {
if (obj.addEventListener)
obj.addEventListener(type, fn, false);
else if (obj.attachEvent) {
// IE
obj["e" + type + fn] = fn;
obj[type + fn] = function () {
obj["e" + type + fn](window.event, ref_obj);
}
obj.attachEvent("on" + type, obj[type + fn]);
}
},
input: "",
pattern: "38384040373937396665",
load: function (link) {
this.addEvent(document, "keydown", function (e, ref_obj) {
if (ref_obj)
konami = ref_obj; // IE
konami.input += e ? e.keyCode : event.keyCode;
if (konami.input.length > konami.pattern.length)
konami.input = konami.input.substr((konami.input.length - konami.pattern.length));
if (konami.input == konami.pattern) {
konami.code(link);
konami.input = "";
e.preventDefault();
return false;
}
}, this);
this.iphone.load(link);
},
code: function (link) {
window.location = link
},
iphone: {
start_x: 0,
start_y: 0,
stop_x: 0,
stop_y: 0,
tap: false,
capture: false,
orig_keys: "",
keys: ["UP", "UP", "DOWN", "DOWN", "LEFT", "RIGHT", "LEFT", "RIGHT", "TAP", "TAP"],
code: function (link) {
konami.code(link);
},
load: function (link) {
this.orig_keys = this.keys;
konami.addEvent(document, "touchmove", function (e) {
if (e.touches.length == 1 && konami.iphone.capture == true) {
var touch = e.touches[0];
konami.iphone.stop_x = touch.pageX;
konami.iphone.stop_y = touch.pageY;
konami.iphone.tap = false;
konami.iphone.capture = false;
konami.iphone.check_direction();
}
});
konami.addEvent(document, "touchend", function (evt) {
if (konami.iphone.tap == true)
konami.iphone.check_direction(link);
}, false);
konami.addEvent(document, "touchstart", function (evt) {
konami.iphone.start_x = evt.changedTouches[0].pageX;
konami.iphone.start_y = evt.changedTouches[0].pageY;
konami.iphone.tap = true;
konami.iphone.capture = true;
});
},
check_direction: function (link) {
x_magnitude = Math.abs(this.start_x - this.stop_x);
y_magnitude = Math.abs(this.start_y - this.stop_y);
x = ((this.start_x - this.stop_x) < 0) ? "RIGHT" : "LEFT";
y = ((this.start_y - this.stop_y) < 0) ? "DOWN" : "UP";
result = (x_magnitude > y_magnitude) ? x : y;
result = (this.tap == true) ? "TAP" : result;
if (result == this.keys[0])
this.keys = this.keys.slice(1, this.keys.length);
if (this.keys.length == 0) {
this.keys = this.orig_keys;
this.code(link);
}
}
}
}
typeof callback === "string" && konami.load(callback);
if (typeof callback === "function") {
konami.code = callback;
konami.load();
}
return konami;
};
var dev_console = new Konami(function () {
alert(eval(prompt("Enter console command: ", "$(\"#\")")));
});

View File

@ -15,43 +15,6 @@
limitations under the License.
*/
// Depending on the device, a few examples are:
// - "Android"
// - "BlackBerry"
// - "iOS"
// - "webOS"
// - "WinCE"
// - "Tizen"
var DEVICE_ANDROID = 0;
var DEVICE_GOOGLEPLAY = 1;
var DEVICE_IOS = 2;
var DEVICE_WEB = 3;
var DEVICE_WINDOWS_PHONE = 5;
var DEVICE_WINDOWS = 6;
var DEVICE_OTHER = 10;
function getPlatform() {
var devicePlatform = device.platform;
switch (devicePlatform) {
case 'Android':
return DEVICE_ANDROID;
case 'iOS':
return DEVICE_IOS;
case 'WinCE':
return DEVICE_WINDOWS_PHONE;
case 'Win32NT':
return DEVICE_WINDOWS_PHONE;
case 'Windows':
return DEVICE_WINDOWS;
case 'browser':
return DEVICE_WEB;
default:
return DEVICE_OTHER;
}
}
function buycoins(productId) {
if (getPlatform() == DEVICE_ANDROID) {
inAppPurchase

View File

@ -17,6 +17,9 @@
-->
<div class="scrollable-box">
<div class='list-group'>
<div class="list-group-item" style="display: none;" id="old-device-warning" onclick="snark()">
Warning: Your device's operating system is outdated. Some features may not work properly.
</div>
<div class='list-group-item' onclick='openIntro()'>
Show Introduction
</div>
@ -63,6 +66,29 @@
}
loadToggles();
}
loadToggles();
/* Old OS warning */
if (getPlatform() === DEVICE_ANDROID && compareVersions(getDeviceVersion(), "4.4") < 0) {
$('#old-device-warning').css('display', 'block');
}
function snark() {
var text = "Warning: Your device's operating system is outdated. Some features may not work properly.<br />";
switch (Math.round(Math.random() * (4 - 1) + 1)) {
case 1:
text += "You might want to buy a new phone. They almost never explode!";
break;
case 2:
text += "Don't complain, it was new when you bought it. <i>I</i> didn't make it old!";
break;
case 3:
text += "Cheer up, most of the game will still work. Just not the best part ;)";
break;
case 4:
text += "If it makes you feel better, you can think about filing a bug report.";
}
$('#old-device-warning').html(text);
}
</script>