Атрибут playsinline тега <video>
Описание
Атрибут playsinline указывает, что видео должно воспроизводиться непосредственно в области просмотра на iOS-устройствах, а не в полноэкранном режиме по умолчанию. Это критически важно для встроенных видео на веб-страницах.
<video playsinline autoplay muted loop src="video.mp4"></video>
Особенности работы:
- Работает преимущественно на iOS (Safari)
- Требуется для автовоспроизведения на мобильных устройствах
- Часто используется вместе с
autoplayиmuted - Не влияет на поведение видео в десктопных браузерах
Рекомендуемые сценарии:
| Применение | Комбинация атрибутов |
|---|---|
| Фоновые видео | playsinline + autoplay + muted + loop |
| Герой-секции | playsinline + autoplay + muted |
| Анимационные баннеры | playsinline + muted + controls |
Пример для разных платформ:
<video playsinline autoplay muted loop
poster="preview.jpg"
src="hero-video.mp4">
</video>
Рекомендации:
- Всегда добавляйте для видео в области просмотра
- Используйте с muted для автовоспроизведения
- Добавляйте poster для быстрого отображения
- Тестируйте на реальных iOS-устройствах
Ограничения iOS:
- Autoplay работает только с muted
- Fullscreen по-прежнему включается при ручном воспроизведении
- Некоторые версии iOS могут игнорировать атрибут
Политика iOS для видео:
<script>
// Обход ограничений для iOS 10+
document.addEventListener('DOMContentLoaded', () => {
const videos = document.getElementsByTagName('video');
for (let video of videos) {
video.playsInline = true;
video.setAttribute('playsinline', '');
video.setAttribute('webkit-playsinline', '');
}
});
</script>
Важно: Для полной кросс-браузерной поддержки:
- Добавляйте оба атрибута:
playsinlineиwebkit-playsinline - Устанавливайте свойство playsInline через JavaScript
- Всегда указывайте poster image
Полная реализация:
<video id="mobileVideo"
playsinline
webkit-playsinline
autoplay
muted
loop
poster="preview.jpg"
src="animation.mp4">
</video>
<script>
document.getElementById('mobileVideo').playsInline = true;
</script>