Замена цифр на картинки
Приветствую!
Из new Date() выделил часы, минуты и секунды. После некоторых манипуляций вывожу данные:
document.getElementById("CountdownM").innerHTML = hoursM + ":" + minutesM + ":" + secondsM;
Код:
<p id="CountdownM"></p>Заранее благодарю! |
najrobi,
:-?
document.getElementById("CountdownM").innerHTML = `<img src="img/${hoursM}.jpg" alt="">:<img src="img/${minutesM}.jpg" alt="">:<img src="img/${secondsM}.jpg" alt="">`;
|
Вот так правильнее
const sToImg = (s) => {
return (s.length<2? `<img src="img/0.jpg" alt="0">`: `<img src="img/${s[0]}.jpg" alt="${s[0]}">`) + `<img src="img/${s[s.length-1]}.jpg" alt="${s[s.length-1]}">`;
}
const [sh, sm, ss] = document.getElementById("CountdownM").innerHTML.split(':');
document.getElementById("CountdownM").innerHTML = sToImg(sh) + ':' + sToImg(sm)+ ':' + sToImg(ss);
|
Большое спасибо за ответы. К сожалению, не получается. Думаю, что напутал что-то с синтаксисом.
Приведу более подробный кусок кода:
var x = setInterval(function() {
// Clock
subbed = new Date();
hoursM = subbed.getHours().toString().length < 2 ? '0' + subbed.getHours() : subbed.getHours();
minutesM = subbed.getMinutes().toString().length < 2 ? '0' + subbed.getMinutes() : subbed.getMinutes();
secondsM = subbed.getSeconds().toString().length < 2 ? '0' + subbed.getSeconds() : subbed.getSeconds();
document.getElementById("CountdownM").innerHTML = hoursM + ":" + minutesM + ":" + secondsM;
}, 1000);
<p id="CountdownM"></p> Заранее благодарен. |
часы с картинками
najrobi,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
#CountdownM img{
transform: translateY(22px);
}
</style>
</head>
<body>
<p id="CountdownM"></p>
<script>
const timeEveryOneSecond = () => {
let data = new Date(),
time = new Intl.DateTimeFormat("ru", {
hour: "2-digit",
minute: "2-digit",
second: "2-digit"
}).format(data);
time = time.replace(/\d/g, i => `<img src="https://dummyimage.com/40x50/fff/000/&text= ${i}">`);// src="img/${i}.jpg"
document.getElementById("CountdownM").innerHTML = time;
setTimeout(timeEveryOneSecond, 1000);
}
timeEveryOneSecond();
</script>
</body>
</html>
|
рони, большое спасибо!
Дело в том, что есть ещё скрипты, использующие данные часов по различным сценариям. Поэтому часы, минуты и секунды необходимо использовать в качестве отдельных переменных. Есть ли какой-нибудь способ поменять цифры на картинки только при выводе, как показано в коде для цифр?
document.getElementById("CountdownM").innerHTML = hoursM + ":" + minutesM + ":" + secondsM;
Т.е. функции должны остаться прежними, меняется только визуальный вывод данных. |
Цитата:
|
najrobi,
...!!!
document.getElementById("CountdownM").innerHTML = [hoursM, minutesM, secondsM].map(time => time.toString().replace(/\d/g, i => `<img src="img/${i}.jpg">`)).join(':');
|
рони, спасибо!!!
|
| Часовой пояс GMT +3, время: 23:07. |