欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

前端Vue全屏screenfull通用解決方案及原理詳細分析

 更新時間:2024年10月18日 10:09:47   作者:溜_x_i_a_o_迪  
這篇文章主要給大家介紹了關(guān)于前端Vue全屏screenfull通用解決方案及原理的相關(guān)資料,使用screenfull這一第三方庫可以實現(xiàn)更穩(wěn)定的全屏功能,需要的朋友可以參考下

全屏 API

原理

對于 screenfull 而言,瀏覽器本身已經(jīng)提供了對用的 API,點擊這里即可查看,這個 API 中,主要提供了兩個方法:

  • [Document.exitFullscreen()](https://developer.mozilla.org/zh-CN/docs/Web/API/Document/exitFullscreen):該方法用于請求從全屏模式切換到窗口模式
  • [Element.requestFullscreen()](https://developer.mozilla.org/zh-CN/docs/Web/API/Element/requestFullScreen):該方法用于請求瀏覽器(user agent)將特定元素(甚至延伸到它的后代元素)置為全屏模式

    比如我們可以通過 document.getElementById('app').requestFullscreen() 在獲取 id=app 的 DOM 之后,把該區(qū)域置為全屏

原生方法存在問題

嘗試了一個網(wǎng)頁,(整個) 區(qū)域背景顏色為黑色

所以通常情況下我們不會直接使用該 API 來去實現(xiàn)全屏效果,而是會使用它的包裝庫 screenfull

方案

方案實現(xiàn)分為兩步:

  • 封裝 screenfull 組件

    展示切換按鈕

    基于 screenfull (第三方庫)實現(xiàn)切換功能

  • 在 navbar 中引入該組件

實現(xiàn) screenfull 組件

封裝 **screenfull** 組件:

npm i screenfull@5.1.0
  • 創(chuàng)建 Screenfull 組件

icon是一個變化的值:需要監(jiān)聽全屏的變化然后切換圖標(biāo)非全屏模式展示:

全屏模式展示:

<template>
  <div>
    <svg-icon
      :icon="isFullscreen ? 'exit-fullscreen' : 'fullscreen'"
      @click="onToggle"
    />
  </div>
</template>

<script setup>
import { ref, onMounted, onUnmounted } from 'vue'
import screenfull from 'screenfull'

// ref 對象,用于存儲當(dāng)前是否為全屏狀態(tài),初始值為 false。
const isFullscreen = ref(false)

// 監(jiān)聽screenfull的變化
const change = () => {
  isFullscreen.value = screenfull.isFullscreen
}

// 切換事件
const onToggle = () => {
  // 切換全屏模式
  screenfull.toggle()
}

// 設(shè)置偵聽器
onMounted(() => {
  // on:綁定監(jiān)聽
  screenfull.on('change', change)
})

// 刪除偵聽器
onUnmounted(() => {
  // off:取消監(jiān)聽
  screenfull.off('change', change)
})
</script>

<style lang="scss" scoped></style>

引入該組件:

<screenfull class="right-menu-item hover-effect" />
import Screenfull from '@/components/Screenfull'

總結(jié)

  • 功能: 該組件允許用戶通過點擊圖標(biāo)在全屏和窗口模式之間切換。圖標(biāo)會根據(jù)當(dāng)前狀態(tài)自動切換顯示 “進入全屏” 或 “退出全屏” 圖標(biāo)。
  • 核心邏輯: 使用 screenfull 庫來處理全屏切換,并使用 Vue 的 ref 和生命周期鉤子 onMounted、onUnmounted 來管理全屏狀態(tài)的監(jiān)聽與更新。
  • 用戶體驗: 用戶點擊圖標(biāo)時,界面會根據(jù)全屏狀態(tài)自動更新圖標(biāo)和界面顯示,確保全屏功能的順暢操作。

到此這篇關(guān)于前端Vue全屏screenfull通用解決方案及原理的文章就介紹到這了,更多相關(guān)前端Vue全屏screenfull通用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue移動端html5頁面根據(jù)屏幕適配的四種解決方法

    vue移動端html5頁面根據(jù)屏幕適配的四種解決方法

    在vue移動端h5頁面當(dāng)中,其中適配是經(jīng)常會遇到的問題,這塊主要有四個方法可以適用。這篇文章主要介紹了vue移動端h5頁面根據(jù)屏幕適配的四種方案 ,需要的朋友可以參考下
    2018-10-10
  • Vue實現(xiàn)tab切換的兩種方法示例詳解

    Vue實現(xiàn)tab切換的兩種方法示例詳解

    這篇文章主要介紹了Vue實現(xiàn)tab切換的兩種方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-11-11
  • vue路由history模式頁面刷新404解決方法Koa?Express

    vue路由history模式頁面刷新404解決方法Koa?Express

    這篇文章主要為大家介紹了vue路由history模式頁面刷新404解決方法(Koa?Express)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 淺析Vue實例以及生命周期

    淺析Vue實例以及生命周期

    這篇文章給大家分享了Vue實例以及生命周期的相關(guān)知識點內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2018-08-08
  • Vue3+Element?Plus實現(xiàn)el-table跨行顯示(非腳手架)

    Vue3+Element?Plus實現(xiàn)el-table跨行顯示(非腳手架)

    這篇文章主要介紹了Vue3+Element Plus實現(xiàn)el-table跨行顯示(非腳手架),本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • VUE中如何實現(xiàn)阻止事件冒泡

    VUE中如何實現(xiàn)阻止事件冒泡

    這篇文章主要介紹了VUE中如何實現(xiàn)阻止事件冒泡,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue.js實現(xiàn)列表清單的操作方法

    Vue.js實現(xiàn)列表清單的操作方法

    Vue.js在設(shè)計上采用MVVM模式,當(dāng)View視圖層發(fā)生變化時,會自動更新到ViewModel.接下來通過本文給大家分享Vue.js實現(xiàn)列表清單的操作方法,需要的朋友參考下吧
    2017-11-11
  • vue前端獲取不同客戶端mac地址最詳細步驟(避免踩坑)

    vue前端獲取不同客戶端mac地址最詳細步驟(避免踩坑)

    在開發(fā)過程中,綁定賬號和電腦的功能可以通過獲取電腦的MAC地址實現(xiàn),下面這篇文章主要介紹了vue前端獲取不同客戶端mac地址的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-10-10
  • 解決VUE項目在IIS部署出現(xiàn):Uncaught SyntaxError: Unexpected token < 報錯

    解決VUE項目在IIS部署出現(xiàn):Uncaught SyntaxError: Unexpected&n

    這篇文章介紹了解決VUE項目在IIS部署出現(xiàn):Uncaught SyntaxError: Unexpected token < 報錯的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • vue使用echarts實現(xiàn)動態(tài)數(shù)據(jù)的示例詳解

    vue使用echarts實現(xiàn)動態(tài)數(shù)據(jù)的示例詳解

    這篇文章主要為大家詳細介紹了vue如何使用echarts實現(xiàn)動態(tài)數(shù)據(jù),文中的示例講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11

最新評論