最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js與vue如何實現(xiàn)自動全屏顯示效果

 更新時間:2023年12月20日 10:23:01   作者:長歡愉  
這篇文章主要給大家介紹了關(guān)于js與vue如何實現(xiàn)自動全屏顯示效果的相關(guān)資料,在vue項目中做一個可以控制頁面全屏展示的效果,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

項目場景:

在進(jìn)入大屏頁面時,頁面自動全屏展示

問題描述

如果只是單純的想要全屏效果,可使用如下代碼:

function fullscreenCheck() {
  if (!document.fullscreenElement &&
      !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) {  // current working methods
    if (document.documentElement.requestFullscreen) {
      document.documentElement.requestFullscreen();
    } else if (document.documentElement.msRequestFullscreen) {
      document.documentElement.msRequestFullscreen();
    } else if (document.documentElement.mozRequestFullScreen) {
      document.documentElement.mozRequestFullScreen();
    } else if (document.documentElement.webkitRequestFullscreen) {
      document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
    }
  } else {
    if (document.exitFullscreen) {
      document.exitFullscreen();
    } else if (document.msExitFullscreen) {
      document.msExitFullscreen();
    } else if (document.mozCancelFullScreen) {
      document.mozCancelFullScreen();
    } else if (document.webkitExitFullscreen) {
      document.webkitExitFullscreen();
    }
  }
}

遇到的問題:
如果直接運(yùn)行這個函數(shù),會報錯,報錯原因大概為 瀏覽器全屏API只能由用戶手勢觸發(fā)
而直接運(yùn)行這個函數(shù),相當(dāng)于通過代碼模擬點(diǎn)擊事件,仍然是 不可以 的,報錯和第一種情況一樣;如下:

TypeError: fullscreen error
Failed to execute 'requestFullscreen' on 'Element': API can only be initiated by a user gesture

曾嘗試通過控制鍵盤 F11 事件去讓頁面全屏,但同樣也是不可以的;

原因分析:

全屏 API 允許網(wǎng)頁以全屏的方式顯示在用戶的屏幕上,覆蓋了操作系統(tǒng)和其他應(yīng)用程序的界面。這樣的能力可能會被惡意的網(wǎng)站或應(yīng)用程序濫用,對用戶造成困擾,并帶來潛在的安全風(fēng)險。為了避免這種濫用和保護(hù)用戶的隱私,現(xiàn)代瀏覽器對全屏 API 進(jìn)行了限制,并要求 必須 由用戶手勢觸發(fā)。

解決方案:

  • 方法1:
    本人使用的方法:曉之以理,動之以情;告知產(chǎn)品經(jīng)理需求暫不可行,要求其更改產(chǎn)品需求。
    最后將需求更改為:
    用戶點(diǎn)擊屏幕任何地方即可全屏或退出全屏,這樣將本文 上方全屏代碼 更改為點(diǎn)擊事件,綁定到根元素上面即可

    問題:
    1、這樣需要大屏的點(diǎn)擊事件全部阻止冒泡
    2、使用最多的echarts圖表阻止冒泡方法,代碼如下:

  // echarts渲染
  myChart.setOption(optionCarRide.value, true);
  // echarts阻止冒泡  
  document.getElementById('XXXXXX——Id').addEventListener('click',event => {
     event.stopPropagation();
  })
  • 方法2:如果你的大屏是在同一個頁面切換顯示,或是點(diǎn)擊一個按鈕,大屏是打開新的頁面后顯示的。請注意
    將你的全屏事件綁定在這個 “跳轉(zhuǎn)” 按鈕上面,并設(shè)置延時。這樣在打開新的頁面時,瀏覽器會認(rèn)為是用戶操作了全屏事件,依舊可以完成相對應(yīng)的 偽全屏事件。可以滿足此類需求。

總結(jié) 

到此這篇關(guān)于js與vue如何實現(xiàn)自動全屏顯示效果的文章就介紹到這了,更多相關(guān)js vue自動全屏顯示內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

合江县| 阿城市| 阜南县| 安达市| 东方市| 九龙县| 仁布县| 鹤壁市| 竹溪县| 惠水县| 临邑县| 剑川县| 榆中县| 新营市| 文安县| 伊宁市| 腾冲县| 吴川市| 鲜城| 新安县| 达尔| 鄂托克旗| 儋州市| 金寨县| 武清区| 新建县| 宜阳县| 迭部县| 依兰县| 永康市| 临澧县| 禹州市| 平昌县| 开远市| 邢台县| 泾源县| 黑龙江省| 克山县| 扎赉特旗| 满洲里市| 盐源县|