Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.06.2015, 00:38
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

Упростить код
Есть такой кусок кода от видео-плеера:
video.addEventListener('timeupdate', function() {
    if (!controls.progressBar.getAttribute('max')) controls.progressBar.setAttribute('max', video.duration);
    controls.progressBar.value = this.currentTime;
    controls.currentTime.innerHTML = (this.currentTime.toFixed(1) < 10) ? '0' + this.currentTime.toFixed(2).replace('.', ':') : this.currentTime.toFixed(2).replace('.', ':');
});



controls.currentTime — это выделенный на скрине блок.

Изначально в HTML написано 00:00, но когда видео проигрывается — время обновляется. Метод currentTime у видео вставляет число с плавающей точкой, я ее заменяю на ":". И нужно, если кол-во секунд меньше 10, то добавлялся еще 0. Я сделал так, это работает, но мне кажется что можно как то упростить этот код?

controls.currentTime.innerHTML = (this.currentTime.toFixed(1) < 10) ? '0' + this.currentTime.toFixed(2).replace('.', ':') : this.currentTime.toFixed(2).replace('.', ':');
Ответить с цитированием
  #2 (permalink)  
Старый 16.06.2015, 00:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от Decode
(this.currentTime.toFixed(1) < 10)
зачем в условии toFixed ?
Ответить с цитированием
  #3 (permalink)  
Старый 16.06.2015, 00:49
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

рони, 3:81 - чтобы получить первое число.
Ответить с цитированием
  #4 (permalink)  
Старый 16.06.2015, 00:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Decode,
а если так ?
controls.currentTime.innerHTML = (this.currentTime < 10? '0' : '') + this.currentTime.toFixed(2).replace('.', ':')
Ответить с цитированием
  #5 (permalink)  
Старый 16.06.2015, 00:55
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

рони, отлично
Ответить с цитированием
  #6 (permalink)  
Старый 16.06.2015, 01:08
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

function format(string) {
    return string.replace('.', ':').replace(/(?=\b\d\b)/g, '0');
}

alert(format('12.12'));
alert(format('2.12'));
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #7 (permalink)  
Старый 16.06.2015, 01:10
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

nerv_, круто, так и сделаю!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает код Kendrick Internet Explorer 5 12.09.2012 16:14
Требуется выводить код рекламного блока Adsense из файла JavaScript??? speedflow Элементы интерфейса 0 26.05.2012 15:50
Запуск кода с фрейма, код в родительском окне - КАК ? lamer Javascript под браузер 7 06.05.2012 15:15
Как создать bodyclick код royksopp Общие вопросы Javascript 8 14.10.2011 16:39
код странно отрабатывает комбинацию клавиш ffx Общие вопросы Javascript 4 20.01.2011 10:58