Так недавно, для удовольствия и узнать больше о Javascript, так как я никогда не делал много веб-разработки, я делал сайт, который будет функционировать как часы, которые выбирают цвет, делая цвет шестнадцатеричный код с момента времени. Достаточно простой, но у меня проблема с функцией, которую я хочу реализовать.Javascript toggling time type
Функция, которую я хотел бы использовать, - это использовать кнопку на веб-странице для переключения между временем по Гринвичу и местным временем. Для этого у меня есть кнопка (onclick) умножить число на -1, чтобы иметь положительное и отрицательное представление каждого состояния. Я проверил через console.log, что само значение изменено, но нет видимого изменения в отображаемом времени.
Итак, я был бы признателен, если бы кто-то мог взглянуть. Возможно, я не понимаю, как сам код течет или повторяется.
Спасибо! Я могу поместить HTML-код в случае необходимости, но я думаю, что только JS будет необходим.
var h, m, s;
window.onload = function startTime() {
var today = new Date();
var buttonHasBeenPressed = -1; // -1 = false
document.getElementById("utcbtn").onclick = function() {
buttonHasBeenPressed = buttonHasBeenPressed * -1; // reverses value
console.log(buttonHasBeenPressed);
}
if (buttonHasBeenPressed == 1) {
getUTCTime(today);
} else {
getNormalTime(today);
}
h = checkTime(h);
m = checkTime(m);
s = checkTime(s);
var timeString = "" + h + ":" + m + ":" + s;
var colorString = "#" + h + m + s;
document.getElementById("main").innerHTML = timeString;
document.getElementById("hexcolor").innerHTML = colorString;
document.body.style.backgroundColor = colorString;
var t = setTimeout(startTime, 500);
}
function checkTime(i) {
if (i < 10) {i = "0" + i}; // add zero in front of numbers < 10
return i;
}
function getUTCTime(today) {
h = today.getUTCHours();
m = today.getUTCMinutes();
s = today.getUTCSeconds();
}
function getNormalTime(today) {
h = today.getHours();
m = today.getMinutes();
s = today.getSeconds();
}
Как я уже говорил, насколько Javascript я очень много новичок, так что этот код, вероятно, не все, что большие - предложения по улучшению его всегда приветствуются!
Любопытно, почему вы не используете логическое значение для чего-то, что явно верно/ложно? Кроме того, вы запускаете весь код для запуска «onload». Я не вижу, где вы звоните, когда вы нажимаете кнопку. Все, что вы делаете, это что-то печатать на консоли. – Antiga
@Antiga Да, больше думать о коде, я буду использовать логическое, просто не успел его доработать. В то время, как я думаю, я думал, что это кажется более явным «toggleable» для меня, но изменит это. Что касается onload, я несколько смутился относительно того, что именно делает 'setTimeout()'. Я нашел это как способ убедиться, что часы обновлены, поэтому я предположил, что это так или иначе зацикливается на нем, однако кажется, что это может быть неверно – Wolverine1621