IOS Mobile Safari – HTML5 <video> накладывает все

Я знаю, что есть аналогичный вопрос 6-летней давности, но на него нет ответов, и сейчас я занимаюсь той же проблемой.

Проблема: тег <video> в моем приложении Angular/Ionic накладывает мое изображение и две кнопки в iOS Mobile Safari — независимо от того, что я делаю!

Он работает во всех других браузерах, которые я тестировал, но не в мобильном сафари iOS.

html:

<ion-row style = "height: 87vh; background: black">
        <ion-col style = "height: 100%" size = "12">
          <div class = "outside_home">
            <video playsinline [muted] = "true" loop id = "video" height = "100%" autoplay>
              <source src = "{{homeInfo().videoUrl}}" type = "video/mp4">
              <source src = "{{homeInfo().videoUrl}}" type = "video/webm">
              <source src = "{{homeInfo().videoUrl}}" type = "video/mov">
            </video>
            <div class = "inside">
              <ion-grid>
                <ion-row class = "ion-text-center ion-justify-content-center">
                  <ion-col size-xs = "12" size-sm = "10" size-md = "8" size-lg = "7" size-xl = "6">
                    <picture>
                      <source type = "image/webp">
                      <img [ngSrc] = "homeInfo().homePageTitle" priority = "true" alt = "" style = "min-height: 80px; display: block"
                           width = "" height = "">
                    </picture>
                  </ion-col>
                </ion-row>
                <ion-row class = "ion-text-center">
                  <ion-col size-sm = "6" class = "ion-text-sm-end" size-xs = "12">
                    <div style = "padding-right: 3%; padding-left: 3%">
                      <ion-button fill = "outline" class = "video_text" (click) = "navigateToPage('connect')">
                        Connect
                      </ion-button>
                    </div>
                  </ion-col>
                  <ion-col size-sm = "6" class = "ion-text-sm-start" size-xs = "12">
                    <div style = "padding-left: 3%; padding-right: 3%">
                      <ion-button fill = "outline" class = "video_text" (click) = "navigateToPage('directions')">
                        Join in Person
                      </ion-button>
                    </div>
                  </ion-col>
                </ion-row>
              </ion-grid>
            </div>
          </div>
        </ion-col>
      </ion-row>

Само видео представляет собой файл .mov.

Вот мой CSS:

div.outside_home {
  display: flex;
  position: absolute;
  width: 100%;
  min-height: 87vh;
  vertical-align: middle;
  justify-content: center;
}

div.inside {
  width: 100%; /* Can be in percentage also. */
  height: auto;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

Я буквально не знаю, что еще делать — я пробовал добавлять overflow: visible, z-index позиционирование, но ничего.

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

в мобильном Safari на iOS img или buttons ВООБЩЕ не отображаются — они отображаются на короткую секунду, а затем исчезают. Что странно, вы все равно можете нажимать кнопки на экране, даже если они не видны?? Я не знаю. Если кто-нибудь может помочь, это было бы здорово.

Я ценю всю помощь!

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
0
67
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы кнопки были видны и доступны для нажатия над элементом в приложении Angular/Ionic в iOS Mobile Safari:

CSS:

div.outside_home {
    display: flex;
    position: absolute;
    width: 100%;
    min-height: 87vh;
    vertical-align: middle;
    justify-content: center;
    z-index: 1;   //Changes added

    video {   //Changes added
        position: absolute;
        top: 0;
        left: 0;
        min-width: 100%;
        min-height: 100%;
        z-index:-10;
      }
  }

  div.inside {
    width: 100%; 
    height: auto;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
  }

HTML:

 <ion-row style = "height: 87vh; background: black">
      <ion-col style = "height: 100%" size = "12">
        <div class = "outside_home" >
          <video playsinline [muted] = "true" loop id = "video" height = "100%" autoplay>
            <source src = "https://amazonaws.s3.SampleVideoCheck.mp4" type = "video/mp4">
            <source src = "https://amazonaws.s3.SampleVideoCheck.mp4" type = "video/webm">
            <source src = "https://amazonaws.s3.SampleVideoCheck.mp4" type = "video/mov">
          </video>
          <div class = "inside">
            <ion-grid>
              <ion-row class = "ion-text-center ion-justify-content-center">
                <ion-col size-xs = "12" size-sm = "10" size-md = "8" size-lg = "7" size-xl = "6">
                  <picture>
                    <source type = "image/webp">
                    <img src = "https://www.gstatic.com/webp/gallery/1.sm.jpg" priority = "true" alt = "" style = "min-height: 80px; display: block"
                         width = "" height = "">
                  </picture>
                </ion-col>
              </ion-row>
              <ion-row class = "ion-text-center">
                <ion-col size-sm = "6" class = "ion-text-sm-end" size-xs = "12">
                  <div style = "padding-right: 3%; padding-left: 3%">
                    <ion-button fill = "outline" class = "video_text" (click) = "navigateToPage('connect')">
                      Connect
                    </ion-button>
                  </div>
                </ion-col>
                <ion-col size-sm = "6" class = "ion-text-sm-start" size-xs = "12">
                  <div style = "padding-left: 3%; padding-right: 3%">
                    <ion-button fill = "outline" class = "video_text" (click) = "navigateToPage('directions')">
                      Join in Person
                    </ion-button>
                  </div>
                </ion-col>
              </ion-row>
            </ion-grid>
          </div>
        </div>
      </ion-col>
    </ion-row>

Эта настройка CSS гарантирует, что видео останется позади другого контента, позволяя кнопкам быть видимыми и доступными для нажатия.

Надеюсь это поможет! Если вам нужна дополнительная помощь, не стесняйтесь спрашивать.

Итак, кажется, это работает... но теперь мое видео не object-fit: cover, как я могу сохранить это в своем видео? потому что теперь на мобильном телефоне, потому что обложка не работает, видео смещено по центру!

Donald Groezinger 13.04.2024 22:33

Я удалил левую и поставил object-fit:cover и теперь всё работает! Спасибо!

Donald Groezinger 13.04.2024 22:42

Другие вопросы по теме