Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.11.2021, 20:06
Аспирант
Отправить личное сообщение для ethereal Посмотреть профиль Найти все сообщения от ethereal
 
Регистрация: 06.05.2019
Сообщений: 94

Не перезаписывать переменную до удаления
Сразу извиняюсь за глупый вопрос, но хочется разобраться в этом

Есть примерно такой код:

video.addEventListener('timeupdate', (event) => {
  const time = video.currentTime;
  console.log(time);
});


Переменная "time", постоянно перезаписывается.

Интересует следующее, можно сделать что б в переменную записывалось только самое первое значение и не менялось, до того как будет удалена через 'delete time;', и затем cнова также записывалось первое значение и т.д?

Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 19.11.2021, 20:17
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Потому, что по мере проигрывания клипа постоянно меняется текущий таймкод и постоянно возникает событие timeupdate

Про переменную и особенно про ее удаление - не понял.
Ответить с цитированием
  #3 (permalink)  
Старый 19.11.2021, 20:39
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

let time;
video.addEventListener('timeupdate', (event) => { 
  time ??= video.currentTime;
  console.log(time);
});
__________________
29375, 35
Ответить с цитированием
  #4 (permalink)  
Старый 19.11.2021, 20:51
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Aetae,
А смысла?
Не проще
let time;
video.addEventListener('timeupdate', (event) => {
  time = video.currentTime;
  console.log(time);
}, {once:true});

И что там про удаление?

Последний раз редактировалось voraa, 19.11.2021 в 20:53.
Ответить с цитированием
  #5 (permalink)  
Старый 19.11.2021, 20:59
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

voraa,
let time;
time ??= 1;
time ??= 2;
time ??= 3;
time // 1

А удаление, надо полагать, по какому-то другому событию он сделает:
time = null;
(delete, конечно, не сработает) и оно снова перезапишется на currentTime.

Хотя зачем - это да, не понятно. Можно вообще просто рукам брать currentTime и ничего не удалять.
__________________
29375, 35

Последний раз редактировалось Aetae, 19.11.2021 в 21:02.
Ответить с цитированием
  #6 (permalink)  
Старый 19.11.2021, 21:15
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Ну может ты и прав, если там еще какие действия надо делать
Например

let time;
video.addEventListener('timeupdate', (event) => {
  time ??= video.currentTime;
  if ( video.currentTime - time >= 5000) {
     ....
  }
});
Ответить с цитированием
  #7 (permalink)  
Старый 19.11.2021, 21:30
Аспирант
Отправить личное сообщение для ethereal Посмотреть профиль Найти все сообщения от ethereal
 
Регистрация: 06.05.2019
Сообщений: 94

Все что мне нужно это выполнить события в определенное время видео, через несколько секунд, к примеру 7

Допустим видео начинается с 20-ой секунды, затем:

27 event
34 event
41 event

и т.д

Важно что б события сработали когда именно на видео будет определенная секунда, просто через Interval не подходит
Ответить с цитированием
  #8 (permalink)  
Старый 19.11.2021, 21:39
Аспирант
Отправить личное сообщение для ethereal Посмотреть профиль Найти все сообщения от ethereal
 
Регистрация: 06.05.2019
Сообщений: 94

Я думал если записать первое значение, потом можно сравнить, к примеру:

const time = video.currentTime;
if ( ideo.currentTime > (time + 7)) {
event
delete time;
}


И все по новой, но что то не так тут
Ответить с цитированием
  #9 (permalink)  
Старый 19.11.2021, 21:48
Аспирант
Отправить личное сообщение для ethereal Посмотреть профиль Найти все сообщения от ethereal
 
Регистрация: 06.05.2019
Сообщений: 94

Другими словами мне нужно сделать превью видео при наведение на блок

Что то такое, видео начинается на 20-ой секунде, идет 3 сек, перематывается на 7, идет 3 сек, перематывается на 7 и т.д
Ответить с цитированием
  #10 (permalink)  
Старый 19.11.2021, 22:48
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Жестоко. Ради превью ты юзеру всё видео целиком так скачаешь.)
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить содержимое контейнера в переменную? snovapavel jQuery 0 27.11.2016 04:56
Как в фильтр выборки по атрибуту занести переменную? tanto39 jQuery 9 29.06.2014 01:53
Можно ли передать переменную ajax'om ? Vladislav Общие вопросы Javascript 2 18.02.2013 06:34
Как передать переменную в другую функцию adder-vb jQuery 3 31.01.2013 14:29
Как обозначить переменную выбранную в FileChooser? woo_hoo Общие вопросы Javascript 4 03.07.2008 12:58