mirror of
https://github.com/wassname/cardsforscience.git
synced 2026-07-08 22:37:11 +08:00
fa12f3c14e
I cleaned the code up a bit. Everything auto-saves now (every 10s) except for achievements. Maybe we should look at them together.
95 lines
2.6 KiB
JavaScript
95 lines
2.6 KiB
JavaScript
'use strict';
|
|
|
|
/** Define UI specific stuff.
|
|
*/
|
|
var UI = (function () {
|
|
/** Resize the scrollable containers and make sure they are resized whenever
|
|
* the window is resized. */
|
|
$(function() {
|
|
var h = $(window).height();
|
|
$('.scrollable').height(h - 50 + 'px');
|
|
|
|
$(window).resize(function() {
|
|
var h = $(window).height();
|
|
$('.scrollable').height(h - 50 + 'px');
|
|
});
|
|
});
|
|
|
|
/** Show a bootstrap modal with dynamic content. */
|
|
var showModal = function(title, text) {
|
|
var $modal = $('#infoBox');
|
|
$modal.find('#infoBoxLabel').html(title);
|
|
$modal.find('.modal-body').html(text);
|
|
$modal.modal({show: true});
|
|
};
|
|
|
|
var showUpdateValue = function(ident, num) {
|
|
var formatted = Helpers.formatNumberPostfix(num);
|
|
if (num != 0) {
|
|
var insert;
|
|
if (num > 0) {
|
|
insert = $("<div></div>")
|
|
.attr("class", "update-plus")
|
|
.html("+" + num);
|
|
} else {
|
|
insert = $("<div></div>")
|
|
.attr("class", "update-minus")
|
|
.html(num);
|
|
}
|
|
showUpdate(ident, insert);
|
|
}
|
|
}
|
|
|
|
var showUpdate = function(ident, insert) {
|
|
var elem = $(ident);
|
|
elem.append(insert);
|
|
insert.animate({
|
|
"bottom":"+=30px",
|
|
"opacity": 0
|
|
}, { duration: 500, complete: function() {
|
|
$(this).remove();
|
|
}});
|
|
}
|
|
|
|
return {
|
|
showModal: showModal,
|
|
showUpdateValue: showUpdateValue
|
|
}
|
|
})();
|
|
|
|
|
|
// I don't know what this is for, so I leave it here for the moment...
|
|
(function() {
|
|
var hidden = "hidden";
|
|
|
|
// Standards:
|
|
if (hidden in document)
|
|
document.addEventListener("visibilitychange", onchange);
|
|
else if ((hidden = "mozHidden") in document)
|
|
document.addEventListener("mozvisibilitychange", onchange);
|
|
else if ((hidden = "webkitHidden") in document)
|
|
document.addEventListener("webkitvisibilitychange", onchange);
|
|
else if ((hidden = "msHidden") in document)
|
|
document.addEventListener("msvisibilitychange", onchange);
|
|
// IE 9 and lower:
|
|
else if ('onfocusin' in document)
|
|
document.onfocusin = document.onfocusout = onchange;
|
|
// All others:
|
|
else
|
|
window.onpageshow = window.onpagehide
|
|
= window.onfocus = window.onblur = onchange;
|
|
|
|
function onchange (evt) {
|
|
var v = 'visible', h = 'hidden',
|
|
evtMap = {
|
|
focus:v, focusin:v, pageshow:v, blur:h, focusout:h, pagehide:h
|
|
};
|
|
|
|
evt = evt || window.event;
|
|
if (evt.type in evtMap)
|
|
detector.visible = evtMap[evt.type] == 'visible';
|
|
else
|
|
detector.visible = !this[hidden];
|
|
}
|
|
})();
|