Ответы пользователя по тегу JavaScript
  • Можно ли в html5 video изменить число кадров в секунду?

    Dier_Sergio_Great
    @Dier_Sergio_Great
    Увлеченный человек
    Нет, нельзя.
    Видеохостинги заранее рендерят видео с разным битрейтом и разным разрешением.
    так как это процедура трудная. То рендер как правило пускают в моменты простоя ЦПУ. Скажем падают запросы обращений на ютуб до 60% от максимльного, в этот момент начинается перерендер, под низкое разрешение с низким битрейтом. но это допустим для каналов с низкими посещениями. а для популярных каналов рендерят сразу. так как млиллионы зрителей хотят скачивать один файл с низким разрешением. Ну а после этого видео файл хранится на кеширующих серверах каждого региона. Например в каждой области России есть сервера для кеширования популярных роликов. Там как правило хранится фильмы в виде порезанных кусков по 20Мб (условно), Например ты во время просмотра меняешь качество, и качество меняется на самом деле по только когда у тебя закончится предыдущий кусок, а новый будет подгружаться уже с другим разрешением. Это позволяет менять параметры видео налету.
    .
    В любом случае число кадров в секунду исходит из того что каждый кадр хранит только изменнёные пиксели(не все, только малую часть) предыдущего кадра. Каждые 10-20 секунд в видео вставляется ключевой кадр со всеми пикселями.
    Как Вы думаете если изъять промежуточный кадр, то следующие кадры будут правильно отображать данные?
    Вы такой эфект уже видел при просмотре видео с лазерных дисков, когда в середине видео вдруг появляются белые квадраты с деталями из фильма. А потом спустя несколько секунд всё становится нормально. Нормально становится когда показывается ключевой кадр. А дефекты видео были, когда был испорчен один из промежуточных кадров, и Вы приэтом могли видеть как один промежуточный кадр даёт дефект на все последующие кадры. А ведь кадров то 25 в секунду. 1 кадр даже не виден глазу, а мы видим как дефект этого короткого кадра растягивается на долгие секунды.
    А если Вы думаете что хранить видео в формате где каждый кадр является ключевым. То разочаруйтесь, такие видеоролики будут занимать 50Гбайт за 30 минут и качество будет их не 4К а всего 720 пикселей по вертикали.
    Ответ написан
    Комментировать
  • Почему у меня получается объект с неверными ключами?

    Dier_Sergio_Great
    @Dier_Sergio_Great
    Увлеченный человек
    А почему Вы не использовали объект new FormData(form) ?
    https://learn.javascript.ru/formdata
    Ответ написан
    1 комментарий
  • Почему document.onload не выполняется?

    Dier_Sergio_Great
    @Dier_Sergio_Great
    Увлеченный человек
    Вот правильный ответ:
    window.addEventListener("load", function() {
      console.log(document)
    });

    Суть в том что если писать так
    window.onload = function() {
      console.log(document)
    }

    то такой вызов переопределяет значения ранее присвоенному событию. Т.е. на это событие нельзя повесить несколько обработчиков. Каждое новый обработчик будет переопределять предыдущее.
    Именно поэтому у Вас оно не работало!
    Надо делать только таким способом.
    А все эти грамотеи которые тут советы давали, их советы не имеют силы так как они не в курсе что событие переопределяется при присвоении.
    А ведь задача ведь стоит не просто вызвать функцию при загрузке сайта, а вызвать при загрузке всех ресурсов.
    Например вызвать AJAX запрос. Какой смысл вызывать AJAX если картинки не прогрузились. Да и вообще тормозить загрузку отображения сайта не нужно без явной причины.
    Например комментарии внизу прогрузить, или подгрузить всплывающие подсказки.
    Грамотеи даже не спросили у Вас, какая зависимость Вашего скрипта, и является ли критичным ожидание загрузки всех ресурсов сайта.
    document.addEventListener('DOMContentLoaded', function() {
    } );

    Такой способ тупо будет задерживать отображение сайта.
    Ответ написан
    2 комментария
  • Почему не работает return false в JS?

    Dier_Sergio_Great
    @Dier_Sergio_Great
    Увлеченный человек
    А что же ты в примере кода не показал часть кода, которой ты принимаешь возвращаемое значения FALSE.
    Ответ написан
    Комментировать
  • Как заставить аккордион скролить к открытому пункту при открытии ее секции?

    Dier_Sergio_Great
    @Dier_Sergio_Great
    Увлеченный человек
    При скроле, в адресной строке должен якорь тоже менятся. А значит его перехватывает и гасит скрипт аккардиона.
    Значит нужно повесить поверх еще одно событие для выполнения скролла.
    Ответ написан
  • Ошибка когда задаю переменную name в JavaScript?

    Dier_Sergio_Great
    @Dier_Sergio_Great
    Увлеченный человек
    Интересно то что в коде подчеркнута ошибка.
    В общем скобку удаляй последнюю и будет тебе счастье.
    Ответ написан
    Комментировать
  • Как реализовать select, так чтобы картинка в option была прикреплена на сss(before или after)?

    Dier_Sergio_Great
    @Dier_Sergio_Great
    Увлеченный человек
    Предположим что выподающее меню это список<ul><li>
    Весь список позиционируйте как Abosulte.
    .
    Каждый элемент в списке это Радиокнопка.
    Нажимая на кнопочку(треугольник справа) расскрытия меню, вы придаете этой кнопке фокус.
    Напишите стиль что если кнопочка с треугольником имеет фокус, то все элементы в списке становятся видимыми, а если фокуса нет, то в списке будет отображатся только один элемент радиокнопки у которой сделан селект.
    Ну а далее к каждой радиокнопке привязываете картинку, текст, и самурадиокнопку делаете прозрачной. И к каждой радиокнопке приделываете ховер.
    Ответ написан
    Комментировать
  • Как исправить скрипт?

    Dier_Sergio_Great
    @Dier_Sergio_Great
    Увлеченный человек
    Я ответа не знаю, но какая то строка в коде повторно инициализирует потерю фокуса.
    let td_text = ($(this).html());
    Предположим эта строка инициализирует потерю фокуса. Вам надо отсылать запросы отключая по очереди строки, чтобы узнать что именно вызывает повторно вызов функции.
    Возможно Вам потребуется добавить флаг для каждой ячейки, если ячейка редактирована, то флаг включить, А потом при отправке запроса надо проверять наличие фалага, потом вынимать данные и потом отправлять запрос.
    Ответ написан
    Комментировать
  • Как запустить скрипт автоматически при загрузке страницы?

    Dier_Sergio_Great
    @Dier_Sergio_Great
    Увлеченный человек
    Тут смотрели?
    https://developer.mozilla.org/en-US/docs/Web/API/W...

    тут описаны все способы и использования addEventListener.
    Быть может для Вашего скрипта события загрузки уже наступают еще до загрузки страницы?
    Быть может Вам при начале выполнения скрипта, надо привязатся к событию загрузки тега BODY.
    Но перед этим надо сделать проверку наличия тега BODY.
    Ответ написан
    Комментировать
  • Как сделать код динамичние?

    Dier_Sergio_Great
    @Dier_Sergio_Great
    Увлеченный человек
    Вообще очень странно размещать каждое значение в теге NAV.
    Если все значения будут в тегагх DIV, то уже проще будет.
    div.insertAdjacentHTML('beforeend', users.map(item => {
    let str= '<div>';
    for(let prop in item){
    let data = item[prop];
    str += `<div class='${prop}'>${data}</div`;
    }
    str += `</div>`;
    return str;
    }).join(''))

    Ну а потом в CSS расставите стили с положением свойств в карточке.
    но тут проблемка в одном из свойств объекта есть свойство address которое в свою очередь имеет свои свойства и в данном примере выводится не будут.
    Если таких свойств с вложенными объектами с неизвестными именами будет много, то скрипт угадывать этот не умеет для кого какие с войства выбирать.
    Вам нужно в моем примере вложить проверку на то что свойства item явялется строкой или вложенным объектом, если строкой то все ОК, если объектом то надо в условии дополнительно разваорачивать подобный цикл FOR
    Ответ написан
    3 комментария
  • Как к HTML элементу добавить функцию?

    Dier_Sergio_Great
    @Dier_Sergio_Great Автор вопроса
    Увлеченный человек
    HTMLElement.prototype.binder = function(){console.log('Ha Ha Ha!!!',this);};
    Ответ написан
    Комментировать
  • Как сплошной текст в jQuery или JS разделить по тегам DIV в местах где попадаются заголовки H3?

    Dier_Sergio_Great
    @Dier_Sergio_Great Автор вопроса
    Увлеченный человек
    jQuery('.entry-content.single-page').html('<div>'+document.querySelector('.entry-content.single-page').innerHTML.replace(/<h3>/g,'</div><div><h3>')+'</div>');
    Ответ написан
  • Как встроить настройку из документации jcarousel в текущий код?

    Dier_Sergio_Great
    @Dier_Sergio_Great
    Увлеченный человек
    jQuery('#mycarousel').jcarousel({
        start: <?= $active; ?>
      });
    Ответ написан
    Комментировать
  • Как связать xmpp и http?

    Dier_Sergio_Great
    @Dier_Sergio_Great
    Увлеченный человек
    я вот тоже парюсь этим вопросом.
    Как пользоватся XMPP-JQUERY?
    Столкнулся с проблемой следующей, сам вроде XMPP работает, и скрипт работает, а вместе не работают.
    Мне подсказали что проблема вся в том что XMPP на сайте должен работать в одном домене что и сам сайт, потому что браузеры не дают доступ. Где то на форуме мне посоветовали в настройках сервера чтого то поменять. для того чтобы браузеру разрешился доступ к другим доменам. как так.
    Пока что рассматриваю Candy, Strophe, Converse скрипты. на их сайтах есть демо скрипты которые можете опробовать.
    Если будет решение для вашего месенжера, прошу поделиться инфой koreshs@mail.ru
    Ответ написан
    Комментировать