diff --git a/index.html b/index.html index acaf21b..0de4276 100644 --- a/index.html +++ b/index.html @@ -30,16 +30,29 @@ along with this program. If not, see . -
+
+

Uhr mit der aktuellen Zeit

+
+
+
+

Uhr mit statischer Zeit

+
+

Created by fritteli, inspired by QLOCKTWO. diff --git a/manifest.appcache b/manifest.appcache index d836a65..3d812a5 100644 --- a/manifest.appcache +++ b/manifest.appcache @@ -1,19 +1,20 @@ CACHE MANIFEST -# 4.0.0-alpha1 +# 4.0.0-alpha2 COPYING +favicon.png index.html jquery-2.0.3.min.js jquery-cookie-1.4.0.js jquery-ui-1.10.3.custom.min.js -uhr.js -uhr-de_CH.js -uhr-de.js -uhr-en.js -uhr.css uhr-black.css -uhr-red.css uhr-blue.css +uhr-de.js +uhr-de_CH.js +uhr-en.js uhr-green.css +uhr-red.css uhr-white.css +uhr.css +uhr.js uhr.woff diff --git a/uhr.js b/uhr.js index 3fa85ae..cb54adc 100644 --- a/uhr.js +++ b/uhr.js @@ -61,7 +61,11 @@ along with this program. If not, see . if (languageKey !== this.options.language) { this.options.language = languageKey; var renderer = new UhrRenderer(this._language(), this.element.find('.letterarea')); - renderer.render(this); + var uhr = this; + renderer.render(this, function() { + uhr._currentMinute = -1; + uhr._update(); + }); $.cookie('uhr-language' + this._id, languageKey, {expires: 365, path: '/'}); this._update(); } @@ -74,6 +78,23 @@ along with this program. If not, see . $.cookie('uhr-theme' + this._id, theme, {expires: 365, path: '/'}); } }, + time: function(time) { + this.options.time = time; + if (time == null) { + this._currentMinute = -1; + this._update(); + } else { + if (this._timer != null) { + window.clearInterval(this._timer); + } + var renderer = new UhrRenderer(this._language(), this.element.find('.letterarea')); + var uhr = this; + renderer.render(this, function() { + uhr._show(time); + }); + + } + }, // private variables _id: -1, _timer: null, @@ -84,30 +105,33 @@ along with this program. If not, see . }, _update: function() { if (this._isOn()) { - var now = new Date(); - if (now.getMinutes() == this._currentMinute) { + var time = new Date(); + if (time.getMinutes() == this._currentMinute) { return; } - this._currentMinute = now.getMinutes(); - var dotMinute = this._getDotMinute(now); - var hour = this._getHour(now); - var coarseMinute = this._getCoarseMinute(now); - this._clear(); - this._highlight('on'); - for (var i = 1; i <= dotMinute; i++) { - this._highlight('dot' + i); - } - this._highlight('minute' + coarseMinute); - hour = this._normalizeHour(hour); - this._highlight('hour' + hour); - if (coarseMinute == 0) { - this._highlight('sharphour'); - } + this._currentMinute = time.getMinutes(); + this._show(time); } else { this._clear(); this._currentMinute = -1; } }, + _show: function(time) { + var dotMinute = this._getDotMinute(time); + var hour = this._getHour(time); + var coarseMinute = this._getCoarseMinute(time); + this._clear(); + this._highlight('on'); + for (var i = 1; i <= dotMinute; i++) { + this._highlight('dot' + i); + } + this._highlight('minute' + coarseMinute); + hour = this._normalizeHour(hour); + this._highlight('hour' + hour); + if (coarseMinute == 0) { + this._highlight('sharphour'); + } + }, _language: function() { return window._uhr.languages[this.options.language]; }, @@ -154,6 +178,9 @@ along with this program. If not, see . this._id = window._uhr.id++; this._setupHTML(); this._wireFunctionality(); + if (this.options.time !== undefined) { + this.time(this.options.time); + } }, _setupHTML: function() { var e = this.element; @@ -258,7 +285,7 @@ function UhrRenderer(layout, renderarea) { this.layout = layout; this.renderarea = renderarea; } -UhrRenderer.prototype.render = function(uhr) { +UhrRenderer.prototype.render = function(uhr, beforeshow) { var renderer = this; this.renderarea.fadeOut('fast', function() { renderer.renderarea.empty(); @@ -271,8 +298,9 @@ UhrRenderer.prototype.render = function(uhr) { renderer.renderarea.append('
'); } } - uhr._currentMinute = -1; - uhr._update(); + if (typeof beforeshow === 'function') { + beforeshow(); + } renderer.renderarea.fadeIn('fast'); }); }