У меня есть фоновое видео (тег видео html5), наложенное титром «h 1», анимированным jQuery.В Firefox и Chrome все работает нормально: воспроизведение видео начинается, и после каждого цикла, когда видео перезапускается, jQuery запускается видео-событием, а также перезапускает титровую анимацию, так что и воспроизведение видео, и наложение титра текста на видео синхронизируются.
К сожалению, в IE вообще не отображается текст-титр, а в Chrome текст-титр отображается только в первом цикле видео, как только начинается второй цикл видео, титул отсутствует.-текст отображается больше.
Вот мой код:
<div class="header-image-wrapper.wrap">
<h1 class="shadow" style="display: block; color: rgb(255, 255, 255);"></h1>
<p class="shadow" style="margin-top: 70px;"></p>
</div>
document.getElementById('bgvid').addEventListener('playing', myVideoHandler, false);
function myVideoHandler(e) {
const $this = $('div.header-image-wrapper.wrao h1');
const $span = $('div.header-image-wrapper.wrap h1 span');
$this.delay(700)
.fadeOut(0, () => {
$this.html('Text000000000000000000');
$this.css("color", "#fff");
})
.fadeIn(500)
.delay(8500)
/*.fadeOut(0)
.fadeIn(500, () => {
$this.html('Text1111111<br>Text1111111111');
})
.delay(5000) */
.fadeOut(500, () => {
$this.html('Text222222222');
$this.css("color", "#fff");
})
.fadeIn(500)
.fadeOut(300, () => {
$this.html('');
$this.css("color", "#fff");
})
}
ОБНОВЛЕНИЕ / РЕШЕНИЕ:
Мне удалось это исправить самостоятельно.По сути, здесь было 2 проблемы.
Во-первых, в приведенном выше коде используется ES6 (EcmaScript 6), который не поддерживается IE, см. Здесь: Поддержка ES6 в Internet Explorer 11
Мне пришлось удалить новый синтаксис для обратных вызовов, например:
.fadeIn(500, () => {
$this.html('Text1111111<br>Text1111111111');
})
, и вместо этого переписать его по-старому:
.fadeIn(500, function() {
$this.html('Text1111111<br>Text1111111111');
})
Другая большая проблема заключалась в том, что некоторыебраузеры, Safari и IE, на самом деле не запускали некоторые из видео событий (например, событие «воспроизведение»), когда видео было установлено на петлю.Итак, я отключил зацикливание, удалив атрибут данных «loop» в теге.Затем я добавил следующий код jQuery, который ждет, когда видео-событие «закончится», а затем перезапускает видео снова.Теперь видео зацикливается, как и раньше, но поскольку оно программно перезапускается каждый раз, оно запускает событие «воспроизведения» при каждом запуске цикла.Мне нужно было это событие воспроизведения, чтобы можно было перезапустить анимацию наложения видео-текста.Таким образом, видео и наложение анимированного текста остаются синхронизированными.
$("#bgvid").bind("play", function() {
myVideoHandler();
});
$("#bgvid").bind("ended", function() {
$("#bgvid").get(0).play();
});