Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431

Как заставить текст мигать

06.03.2023, 00:19. Показов 3207. Ответов 69
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как с помощью js сделать мигающий текст в спанах с классом colon?

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>js | скрипт время/дата</title>
  <style>
   #data { 
    font: 40px serif;
    color: hsl(120,100%,30%);
   }
   .colon {
    color: hsl(120,100%,40%);
   }
  </style> 
 </head> 
 <body>
  <span id="data"></span>
  
  <script>
  
  function two_digit(n) {
    var str = "";
    if (n <= 9) str = "0";
    str = str + n;
    return str;
  }
  
  function time() {
    var t = new Date();
    var hours = two_digit(t.getHours());
    var min = two_digit(t.getMinutes());
    var sec = two_digit(t.getSeconds());
  
    return hours + "<span class='colon'>:</span>" + min + "<span class='colon'>:</span>" + sec + "<br>";
  }
  
  function data() {
    var d = new Date();
    var days = ["Воскресенье","Понеднльник","Вторник","Среда","Четверг","Пятница","Суббота"];
    var day = d.getDate();
    // var month = two_digit(d.getMonth()+1);
    // var months = ["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"];
    var months = ["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII"];
    var year = d.getFullYear();
  
    // return days[d.getDay()] + "<br>" + day + "." + month + "." + year + "г."; // = строка 29
    // return days[d.getDay()] + "<br>" + day + " " + months[d.getMonth()]+ " " + year + "г."; // = строка 30
    return days[d.getDay()] + "<br>" + day + "." + months[d.getMonth()]+ "." + year + "г."; // = строка 31
  }
  
  var spans = document.querySelectorAll('.colon');
  var op = [0.2, 0.4, 0.6, 0.8, 1.0];
  step = 0;
  (function blink() {
    spans.forEach(function(elem) {
    elem.style.opacity = op[step];
  });
  step = ++step % op.length;
  setTimeout(blink, 200);
  })()
  
  function clock() {
    setInterval(function () {
    document.getElementById('data').innerHTML = time() + data();
    }, 1000);
  }
  clock();
  </script>
  <br>
  <br>blink
 </body>
</html>
что тут не так ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.03.2023, 00:19
Ответы с готовыми решениями:

Как заставить объект мигать двумя цветами?
Всем привет! Подскажите пожалуйста скрипт, который заставит мигать объект с определенным классом. В моем случае надо заставить мигать...

Как заставить картинку мигать
Подскажите как заставить картинку мигать.

Как заставить кнопку мигать?
Добрый вечер! При нажатии на кнопку &quot;ОК&quot; в выплывающем окне MessageDlg нужно,чтобы на форме отобразилась кнопка (это свойство visible,...

69
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
06.03.2023, 00:23
Цитата Сообщение от бел ка
что тут не так ?
Постановка вопроса, нагромождение кода.
0
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
06.03.2023, 01:00
HTML5
1
2
3
4
5
<span class="colon">текст</span>
<span class="colon">текст</span>
<span class="colon">текст</span>
<span class="colon">текст</span>
<span class="colon">текст</span>
JavaScript
1
2
3
4
const colons = document.querySelectorAll('.colon');
const rgb = () => `rgb(${[...Array(3)].map(x => Math.floor(Math.random() * 256))})`;
const run = () => (colons.forEach(e => e.style.color = rgb(), setTimeout(run, 1000)));
run();
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
06.03.2023, 01:58  [ТС]
greg zakharov, что не так в строках 51-60, можно это как то исправить?

Добавлено через 18 минут
есть свойство opacity, как ему задать значение 0.3, и с интервалом в 0.5 сек. менять на значение 1.0 ?
0
220 / 173 / 115
Регистрация: 19.01.2015
Сообщений: 524
06.03.2023, 06:08
Цитата Сообщение от бел ка Посмотреть сообщение
есть свойство opacity, как ему задать значение 0.3, и с интервалом в 0.5 сек. менять на значение 1.0 ?
Для этого не нужен js:
CSS
1
2
3
4
5
6
.colon {animation: blink 0.5s infinite;}
@keyframes blink {
  0% {opacity: 1;}
  50% {opacity: 0.3;}
  100% {opacity: 1;}
}
если так уж хочется на js то:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
const colons = document.querySelectorAll('.colon');
 
function blink() {
  colons.forEach(colon => {
    if (colon.style.opacity === '1') {
      colon.style.opacity = '0.3';
    } else {
      colon.style.opacity = '1';
    }
  });
}
 
setInterval(blink, 500);
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
06.03.2023, 17:46  [ТС]
Smls, вставила в скрипт, и выдает ошибку
Uncaught SintaxError: Unexpected token >
на эту строку colons.forEach(colon => {
0
220 / 173 / 115
Регистрация: 19.01.2015
Сообщений: 524
06.03.2023, 17:58
А как вставила и куда вставила нужно угадать? Не видя кода невозможно ничего сказать.
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
06.03.2023, 18:03  [ТС]
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>js | скрипт время/дата</title>
  <style>
   #data { 
    font: 40px serif;
    color: hsl(120,100%,30%);
   }
   .colon {
    color hsl(120,100%,40%);
    line-height 10px;
    padding: 0 3px; 
    display: inline-block;
    position: relative; bottom: 5px; 
   }
  </style> 
 </head> 
 <body>
  <span id="data"></span>
  
  <script>
  
  function two_digit(n) {
    var str = "";
    if (n <= 9) str = "0";
    str = str + n;
    return str;
  }
  
  function time() {
    var t = new Date();
    var hours = two_digit(t.getHours());
    var min = two_digit(t.getMinutes());
    var sec = two_digit(t.getSeconds());
  
    return hours + "<span class='colon'>:</span>" + min + "<span class='colon'>:</span>" + sec + "<br>";
  }
  
  function data() {
    var d = new Date();
    var days = ["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"];
    var day = d.getDate();
    // var month = two_digit(d.getMonth()+1);
    // var months = ["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"];
    var months = ["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII"];
    var year = d.getFullYear();
  
    // return days[d.getDay()] + "<br>" + day + "." + month + "." + year + "г."; // = строка 29
    // return days[d.getDay()] + "<br>" + day + " " + months[d.getMonth()]+ " " + year + "г."; // = строка 30
    return days[d.getDay()] + "<br>" + day + "." + months[d.getMonth()]+ "." + year + "г."; // = строка 31
  }
  
  const colons = document.querySelectorAll('.colon');
  
  function blink() {
  colons.forEach(colon => {
  if (colon.style.opacity === '1') {
  colon.style.opacity = '0.3';
  } else {
  colon.style.opacity = '1';
  }
  });
  }
  
  setInterval(blink, 500);
  
  function clock() {
    setInterval(function () {
    document.getElementById('data').innerHTML = time() + data();
    }, 1000);
  }
  clock();
  </script>
 </body>
</html>
0
220 / 173 / 115
Регистрация: 19.01.2015
Сообщений: 524
06.03.2023, 18:27
.colon каждую секунду новый создается. Проще всё таки CSS использовать
0
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
06.03.2023, 18:37
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>js | скрипт время/дата</title>
  <style>
   #data { 
    font: 40px serif;
    color: hsl(120,100%,30%);
   }
   .colon {
    -moz-animation: myfade 1s ease infinite;
    -webkit-animation: myfade 1s ease infinite;
   }
   @-webkit-keyframes myfade {
    0% {
      opacity: 1.0;
    }
    50% {
      opacity: 0;
    }
    100% {
      opacity: 1.0;
    }   
  }
 
  @-moz-keyframes myfade {
    0% {
      opacity: 1.0;
    }
    50% {
      opacity: 0;
    }
    100% {
      opacity: 1.0;
    };
  }
 
  </style> 
 </head> 
 <body>
  <span id="data"></span>
  
  <script>
  
  function two_digit(n) {
    var str = "";
    if (n <= 9) str = "0";
    str = str + n;
    return str;
  }
  
  function time() {
    var t = new Date();
    var hours = two_digit(t.getHours());
    var min = two_digit(t.getMinutes());
    var sec = two_digit(t.getSeconds());
  
    return hours + "<span class='colon'>:</span>" + min + "<span class='colon'>:</span>" + sec + "<br>";
  }
  
  function data() {
    var d = new Date();
    var days = ["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"];
    var day = d.getDate();
    // var month = two_digit(d.getMonth()+1);
    // var months = ["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"];
    var months = ["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII"];
    var year = d.getFullYear();
  
    // return days[d.getDay()] + "<br>" + day + "." + month + "." + year + "г."; // = строка 29
    // return days[d.getDay()] + "<br>" + day + " " + months[d.getMonth()]+ " " + year + "г."; // = строка 30
    return days[d.getDay()] + "<br>" + day + "." + months[d.getMonth()]+ "." + year + "г."; // = строка 31
  }
  
  const colons = document.querySelectorAll('.colon');
  
  function blink() {
  colons.forEach(colon => {
  if (colon.style.opacity === '1') {
  colon.style.opacity = '0.3';
  } else {
  colon.style.opacity = '1';
  }
  });
  }
  
  setInterval(blink, 500);
  
  function clock() {
    setInterval(function () {
    document.getElementById('data').innerHTML = time() + data();
    }, 1000);
  }
  clock();
  </script>
 </body>
</html>
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
06.03.2023, 19:17  [ТС]
может возможно обновлять раз в секунду не весь элемент "data" а только часы минуты и секунды, а день недели, число, месяц, год раз в сутки, в полночь?
0
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
06.03.2023, 19:23
Цитата Сообщение от бел ка Посмотреть сообщение
может возможно обновлять раз в секунду не весь элемент "data" а только часы минуты и секунды, а день недели, число, месяц, год раз в сутки, в полночь?
Можно ещё лучше сделать, через id или вообще как компонент
0
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
06.03.2023, 19:35
JavaScript
1
2
3
4
5
6
7
8
9
10
11
const colons = document.querySelectorAll('.colon');
const ops = [0.2, 0.5, 0.4, 0.7, 0.3, 0.6, 0.8, 1];
const len = ops.length;
 
let cnt = 0;
 
function blink() {
    colons.forEach(el => (el.style.opacity = ops[cnt % len], cnt === len ? cnt = 0 : cnt++));
}
 
setInterval(blink, 500);
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
06.03.2023, 19:37  [ТС]
pgb, ну я имела ввиду обернуть в спаны с ид часы минуты секунды и только их обновлять...
0
 Аватар для pgb
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
06.03.2023, 19:44
Цитата Сообщение от бел ка Посмотреть сообщение
ну я имела ввиду обернуть в спаны с ид часы минуты секунды и только их обновлять...
Так и я про это сказал.

ЗЫ. А если по современному, то можно компонент сделать с теневой разметкой и JS кодом, подключать компонент, а на странице просто указывать тег(например: <mytime>H:m:s</mytime>) с форматом даты времени, всё остальное будет делать компонент. Но это конечно вам будет посложнее реализовать, поэтому лучше через id.
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
06.03.2023, 20:08  [ТС]
klyapa, вставила в скрипт, и выдает ошибку
Uncaught SintaxError: Unexpected token >
на эту строку
colons.forEach(el => (el.style.opacity = ops[cnt % len], cnt === len ? cnt = 0 : cnt++));

Добавлено через 6 минут
или лучше менять название класса раз в 0.5 сек, colon <=> colon_op ? задав им соответственно разные значение свойства opacity...
0
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
06.03.2023, 21:22
Цитата Сообщение от бел ка Посмотреть сообщение
вставила в скрипт, и выдает ошибку
=> Не верю
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
06.03.2023, 23:21  [ТС]
klyapa, так суть самого вопроса, как заставить мигать разделитель между чч:мм:сс,

пост 8, строка 38,
JavaScript
38
return hours + "<span class='colon'>:</span>" + min + "<span class='colon'>:</span>" + sec + "<br>";
или сделать чтобы за секунду плавно эти спаны меняли прозрачность с 0.1 до 1.0, или в принципе достаточно чтобы за секунду два раза меняли прозрачность с 0.1 на 1.0
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
15.05.2023, 01:58  [ТС]
есть простой скрипт времени, элемент data обновляется раз в 0.5сек, как сделать чтобы разделитель "<span class='colon'>:</span>" между чч:мм:сс менял прозрачность при каждом обновлении, раз в 0.5сек opacity: 0.2 на opacity: 1.0 средствами js, без css анимации ?
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title></title>
  <style>
   #data { 
    font: 40px serif;
    color: hsl(120,100%,30%);
   }
 </style> 
 </head> 
 <body>
  <span id="data"></span>
  
  <script>
  
  function two_digit(n) {
    var str = "";
    if (n <= 9) str = "0";
    str = str + n;
    return str;
  }
  
  function time() {
    var t = new Date();
    var hours = two_digit(t.getHours());
    var min = two_digit(t.getMinutes());
    var sec = two_digit(t.getSeconds());
  
    return hours + "<span class='colon'>:</span>" + min + "<span class='colon'>:</span>" + sec + "<br>";
  }
  
  function data() {
    var d = new Date();
    var days = ["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"];
    var day = d.getDate();
    // var month = two_digit(d.getMonth()+1);
    // var months = ["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"];
    var months = ["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII"];
    var year = d.getFullYear();
  
    // return days[d.getDay()] + "<br>" + day + "." + month + "." + year + "г."; // = строка 29
    // return days[d.getDay()] + "<br>" + day + " " + months[d.getMonth()]+ " " + year + "г."; // = строка 30
    return days[d.getDay()] + "<br>" + day + "." + months[d.getMonth()]+ "." + year + "г."; // = строка 31
  }
  
  function clock() {
    setInterval(function () {
    document.getElementById('data').innerHTML = time() + data();
    }, 500);
  }
  clock();
  </script>
 </body>
</html>
Добавлено через 5 минут
прозрачность... ну или цвет hsl(120,100%,30%) на hsl(120,100%,70%) ?
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
15.05.2023, 09:57
Цитата Сообщение от klyapa Посмотреть сообщение
=> Не верю
У бел ка проект запускается на очень древнем устройстве, где-то около 40-х версий Chrome по уровню поддержки фич.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.05.2023, 09:57
Помогаю со студенческими работами здесь

Как заставить мигать ListViewItem?
Если у объекта свойство True, то заставить мигать

Как заставить перестать мигать GIF?
Всем привет. Поставил на фон GIF картинку. при запуске приложения gifка мигает. эффект блика. Как исправить ?

Как заставить приложение мигать в панели задач
Как можно заставить приложение мигать в панели многозадачности?

Как заставить мигать иконку внутри ListViewItem?
&lt;ListView Grid.Row=&quot;1&quot; Grid.Column=&quot;0&quot; Grid.ColumnSpan=&quot;6&quot; ...

Как заставить приложение мигать в панели задач
Добрый день. Вот думаю многие знают на windos 7 некоторые программы когда запускаются в фоновом режиме или что-то происходит или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru