toggle-switch auch farbig, und vorallem pro uhr

This commit is contained in:
Manuel Friedli 2013-11-28 09:57:50 +01:00
parent 4f796107bc
commit 77c660fcff
7 changed files with 43 additions and 37 deletions

View File

@ -20,35 +20,21 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<script type="text/javascript" src="jquery.cookie.js"></script>
<script type="text/javascript" src="uhr.js"></script>
<link rel="stylesheet" type="text/css" href="uhr.css" />
<link rel="stylesheet" type="text/css" href="uhr-black.css" id="theme" />
<link rel="stylesheet" type="text/css" href="uhr-black.css" />
<link rel="stylesheet" type="text/css" href="uhr-blue.css" />
<link rel="stylesheet" type="text/css" href="uhr-green.css" />
<link rel="stylesheet" type="text/css" href="uhr-red.css" />
<link rel="stylesheet" type="text/css" href="uhr-white.css" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
</head>
<body>
<div id="uhr" class="uhr"></div>
<select id="themeswitcher">
<option value="black">Schwarz</option>
<option value="red">Rot</option>
<option value="blue">Blau</option>
<option value="green">Grün</option>
<option value="white">Weiss</option>
</select>
<p id="disclaimer">Created by fritteli, inspired by <a href="http://www.qlocktwo.com/">QLOCKTWO</a>.
<script type="text/javascript" src="uhr-de_CH.js"></script>
<script type="text/javascript" src="uhr-de.js"></script>
<script type="text/javascript" src="uhr-en.js"></script>
<script type="text/javascript">
var uhr = new Uhr($('#uhr'), $('#theme'));
$(document).ready(function() {
$('#themeswitcher').on('change', function() {
uhr.setTheme(this.value);
});
var theme = $.cookie('theme');
if (theme === undefined || theme == 'undefined') {
theme = 'black';
}
$('#themeswitcher').val(theme);
uhr.setTheme(theme);
});
var uhr = new Uhr($('#uhr'));
</script>
</body>
</html>

View File

@ -13,9 +13,9 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
@import url("uhr-idle-light.css");
.uhr {
.uhr.black{
background-color: #111;
}
.onoffswitch-inner:before {
.black .onoffswitch-inner:before {
background-color: #111;
}

View File

@ -13,9 +13,9 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
@import url("uhr-idle-light.css");
.uhr {
.uhr.blue {
background-color: #00a;
}
.onoffswitch-inner:before {
.blue .onoffswitch-inner:before {
background-color: #00a;
}

View File

@ -13,9 +13,9 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
@import url("uhr-idle-dark.css");
.uhr {
.uhr.green {
background-color: #0c0;
}
.onoffswitch-inner:before {
.green .onoffswitch-inner:before {
background-color: #0c0;
}

View File

@ -13,9 +13,9 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
@import url("uhr-idle-light.css");
.uhr {
.uhr.red {
background-color: #700;
}
.onoffswitch-inner:before {
.red .onoffswitch-inner:before {
background-color: #700;
}

View File

@ -13,17 +13,17 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
@import url("uhr-idle-dark.css");
.uhr {
.uhr.white {
background-color: #ccc;
}
.dot.active{
.uhr.white .dot.active{
border-color: #fff !important;
box-shadow: 0 0 0.1em #fff !important;
}
.letter.active{
.uhr.white .letter.active{
color: #fff !important;
text-shadow: 0 0 0.1em #fff !important;
}
.onoffswitch-inner:before {
.white .onoffswitch-inner:before {
background-color: #ccc;
}

30
uhr.js
View File

@ -17,14 +17,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* @param clockarea Das jQuery-gewrappte HTML-Element, auf dem die Uhr angezeigt werden soll.
* @param themeElement Das HTML-Stylesheet-Tag, das das Theme-CSS referenziert.
*/
function Uhr(clockarea, themeElement) {
function Uhr(clockarea) {
this.id = Uhr.id++;
this.themeElement = themeElement;
this.timer = null;
this.currentTheme = null;
this.currentLayout = Uhr.layouts['undefined'];
this.currentMinute = -1;
this.initHTMLElements(clockarea, themeElement);
this.initHTMLElements(clockarea);
}
Uhr.id = 0;
Uhr.layouts = new Array();
@ -68,8 +67,11 @@ Uhr.prototype.setLayout = function(locale) {
}
Uhr.prototype.setTheme = function(theme) {
if (theme != this.currentTheme) {
this.clockarea.removeClass(this.currentTheme);
this.toggleSwitch.removeClass(this.currentTheme);
this.clockarea.addClass(theme);
this.toggleSwitch.addClass(theme);
this.currentTheme = theme;
this.themeElement.attr('href', 'uhr-' + theme + '.css');
$.cookie('theme' + this.id, theme, {expires: 365, path: '/'});
}
}
@ -138,12 +140,16 @@ Uhr.prototype.normalizeHour = function(hour) {
}
return hour;
}
Uhr.prototype.initHTMLElements = function(clockarea, themeElement) {
Uhr.prototype.initHTMLElements = function(clockarea) {
this.createHTMLElements();
this.clockarea = this.initClockarea(clockarea);
this.letterarea = this.clockarea.find('.letterarea');
this.themeSwitch = this.initThemeSwitch();
this.layoutSwitch = this.initLayoutSwitch();
this.toggleSwitch = this.initToggleSwitch();
}
Uhr.prototype.createHTMLElements = function() {
}
Uhr.prototype.initClockarea = function(clockarea) {
clockarea.empty();
clockarea.append('<span class="item dot dot1"></span>');
@ -202,6 +208,20 @@ Uhr.prototype.initLayoutSwitch = function() {
}
return layoutSwitch;
}
Uhr.prototype.initThemeSwitch = function() {
var themeSwitch = $('<select></select>');
themeSwitch.append('<option value="black">Schwarz</option>');
themeSwitch.append('<option value="red">Rot</option>');
themeSwitch.append('<option value="blue">Blau</option>');
themeSwitch.append('<option value="green">Grün</option>');
themeSwitch.append('<option value="white">Weiss</option>');
var uhr = this;
themeSwitch.on('change', function() {
uhr.setTheme(this.value);
});
this.clockarea.after(themeSwitch);
return themeSwitch;
}
Uhr.register('undefined', {
language: 'Please choose your language',