AppFullscreen — это сервис Quasar, предназначенный для
управления полноэкранным режимом в веб-приложениях. Он предоставляет
простой и кроссбраузерный способ перевода приложения в полноэкранный
режим, отслеживания состояния и управления выходом из него.
Для использования AppFullscreen необходимо импортировать
его из Quasar и вызвать методы через this.$q.fullscreen в
компонентах Vue.
import { defineComponent } from 'vue';
import { useQuasar } from 'quasar';
export default defineComponent({
setup() {
const $q = useQuasar();
const enterFullscreen = () => {
$q.fullscreen.request();
};
const exitFullscreen = () => {
$q.fullscreen.exit();
};
const toggleFullscreen = () => {
$q.fullscreen.toggle();
};
return { enterFullscreen, exitFullscreen, toggleFullscreen };
}
});
Ключевые методы:
request(target?: HTMLElement) — переводит указанное
DOM-узел (или всю страницу по умолчанию) в полноэкранный режим.exit() — завершает полноэкранный режим.toggle(target?: HTMLElement) — переключает состояние
полноэкранного режима.isActive — булевое свойство, отражающее текущее
состояние полноэкранного режима.isCapable — булевое свойство, показывающее,
поддерживается ли полноэкранный режим в текущем браузере.<template>
<div>
<img ref="imageRef" src="image.jpg" @click="toggleFullscreen" />
<q-btn label="Войти в полноэкранный режим" @click="enterFullscreen" />
<q-btn label="Выйти из полноэкранного режима" @click="exitFullscreen" />
</div>
</template>
<script>
import { ref, onMounted } from 'vue';
import { useQuasar } from 'quasar';
export default {
setup() {
const $q = useQuasar();
const imageRef = ref(null);
const enterFullscreen = () => $q.fullscreen.request(imageRef.value);
const exitFullscreen = () => $q.fullscreen.exit();
const toggleFullscreen = () => $q.fullscreen.toggle(imageRef.value);
return { imageRef, enterFullscreen, exitFullscreen, toggleFullscreen };
}
};
</script>
В данном примере request применяется к конкретному
элементу, что позволяет выводить только изображение в полноэкранном
режиме, а не всю страницу.
AppFullscreen предоставляет возможность отслеживания
событий изменения состояния через событие @fullscreen. В
Composition API это реализуется через watchEffect на
свойство isActive.
import { watchEffect } from 'vue';
import { useQuasar } from 'quasar';
export default {
setup() {
const $q = useQuasar();
watchEffect(() => {
if ($q.fullscreen.isActive) {
console.log('Приложение находится в полноэкранном режиме');
} else {
console.log('Приложение вышло из полноэкранного режима');
}
});
}
};
Это полезно для динамического изменения интерфейса: скрытие панели навигации, изменения размеров компонентов или анимаций при переходе в полноэкранный режим.
isCapable позволяет определить поддержку
полноэкранного режима браузером.exit()).AppFullscreen легко комбинируется с компонентами Quasar,
такими как QBtn, QToolbar и
QDialog:
QBtn можно использовать для входа и выхода из
полноэкранного режима.QDialog при использовании с fullscreen
может имитировать нативный полноэкранный режим на мобильных
устройствах.QLayout можно динамически изменять при активации
полноэкранного режима (например, скрывая QHeader и
QFooter).<q-layout view="lHh Lpr lFf">
<q-header v-if="!$q.fullscreen.isActive">Шапка приложения</q-header>
<q-page-container>
<q-page>
<q-btn label="Полноэкранный режим" @click="$q.fullscreen.toggle()" />
</q-page>
</q-page-container>
</q-layout>
isCapable перед вызовом
request, чтобы избежать ошибок в неподдерживаемых
браузерах.isActive для адаптации интерфейса и скрытия
ненужных элементов.AppFullscreen предоставляет полный набор инструментов
для управления полноэкранным режимом в веб-приложениях на Vue с Quasar.
Он обеспечивает:
Использование этого сервиса повышает интерактивность и гибкость приложений, особенно для медиаконтента, презентаций и визуальных интерфейсов.