Vue でフルスクリーンを実装し、フルスクリーン終了を監視する

Vue でフルスクリーンを実装し、フルスクリーン終了を監視する

序文:

vueでは、デフォルトページを実装し、divをフルスクリーンにして、フルスクリーンからの離脱回数を監視します。フルスクリーンからの離脱回数が5に達すると、別のページにジャンプします。

実装手順:

1. ページ上の必要なコンテナに id = 'con_lf_top_div' を追加し、それに動的なクラス名を追加し、プロンプトとクリックして全画面に入るボタンを追加します。

<テンプレート>
  <el-card
    影="なし"
    クラス="検査中"
    v-loading.fullscreen.lock="読み込み中"
    id="con_lf_top_div"
    :class="{'isScreen':!fullscreen}"
  >
    <p style="color:red;">*ヒント: テストはフルスクリーンで受けてください。フルスクリーンを 5 回終了すると、テストを受けることができなくなります。</p>
    <el-button v-if="fullscreen" @click="screen();screen()" style="position: absolute;top: 0px;right: 0;">全画面表示</el-button>
 
...その他

2. CSS部分、フルスクリーン部分は別途スタイル設定する必要がある

 .isScreen{
    高さ:100vh!重要;
    オーバーフロー-y: 自動;
  }

3. js部分

データ:

fullscreen:false, //フルスクリーンかどうか goCount:0 //終了する回数

マウントされた初期化呼び出し

マウント() {
      this.initScreen()
}

メソッドはメソッドを定義します:

 //フルスクリーンメソッドを初期化する initScreen(){
        this.goCount = 0
        this.screen() //全画面で開く window.addEventListener('keydown', function(event) {
          // F11 のフルスクリーンのデフォルトイベントを無効にしますが、F11 のフルスクリーンからの終了は無効にしません const e = event || window.event
          e && e.keyCode === 122の場合{
            e.preventDefault()
          }
        })
        document.addEventListener('fullscreenchange', v => {
          (this.fullscreen == true)の場合{
            this.fullscreen = false
          }それ以外{
            this.goCount++
            // this.$message.info('これは出口番号です'+this.goCount+'time')
            console.log('これは終了番号 '+this.goCount+' です)
            this.fullscreen = true
            if(this.goCount == 5){
              this.goBack()
            }
          }
        })
      }, 

完全なソースコード:

1. ページ:
<el-card
    id="con_lf_top_div"
    :class="{'isScreen':!fullscreen}"
  >
    <p style="color:red;">* ヒント: テストはフルスクリーン モードで受けてください。フルスクリーン モードを 5 回終了すると、テストを受けることができなくなります。</p>
    <el-button v-if="fullscreen" @click="screen();screen()" style="position: absolute;top: 0px;right: 0;">全画面表示</el-button>
     ...
 
 
2. データ:
fullscreen:false, //フルスクリーンかどうか goCount:0 //終了回数 3。マウント済み:
this.initScreen()
 
 
 
4. 方法:
 
//フルスクリーンメソッドを初期化する initScreen(){
   this.goCount = 0
   this.screen() //全画面で開く window.addEventListener('keydown', function(event) {
       // F11 のフルスクリーンのデフォルトイベントを無効にしますが、F11 のフルスクリーンからの終了は無効にしません const e = event || window.event
      e && e.keyCode === 122の場合{
         e.preventDefault()
      }
   })
   document.addEventListener('fullscreenchange', v => {
      (this.fullscreen == true)の場合{
         this.fullscreen = false
      }それ以外{
         this.goCount++
          // ここでのイベントは 2 回トリガーされることに注意してください console.log('現在 '+this.goCount+' 回終了しています')
          this.fullscreen = true
          if(this.goCount == 5){
            this.goBack()
          }
      }
   })
},
//フルスクリーンメソッド screen(){
  //設定後、id==con_lf_top_div のコンテナーが全画面になります。let element = document.getElementById('con_lf_top_div');
  フルスクリーンの場合
     ドキュメントがフルスクリーンから抜ける場合
        ドキュメントを終了してフルスクリーンに戻ります。
     } そうでない場合 (document.webkitCancelFullScreen) {
        document.webkitCancelFullScreen();
     } そうでない場合 (document.mozCancelFullScreen) {
        document.mozCancelFullScreen();
     } そうでない場合 (document.msExitFullscreen) {
        ドキュメント.msExitFullscreen();
     }
 } それ以外 {
    if (element.requestFullscreen) {
        要素をリクエストフルスクリーン();
    } そうでない場合 (element.webkitRequestFullScreen) {
        要素.webkitRequestFullScreen();
    } そうでない場合 (element.mozRequestFullScreen) {
        要素.mozRequestFullScreen();
    } そうでない場合 (element.msRequestFullscreen) {
        // IE11
        要素.msRequestFullscreen();
     }
    }
    this.fullscreen = !this.fullscreen;
 
},
//フルスクリーンメソッドを終了する goBack(){
    //111111111111111111111111111111111111111
    this.$message.error('フルスクリーンを 5 回終了しました。現在の試験は終了しました')
    これ.$router.go(-1)
        
},

詳細情報:

https://blog.csdn.net/qq_41619796/article/details/104751814

https://blog.csdn.net/wangsiyisiyi/article/details/117086453

これで、Vue でのフルスクリーンの実装とフルスクリーンの終了の監視に関するこの記事は終了です。Vue でのフルスクリーンの実装とフルスクリーンの終了の監視に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • vue.js でルートの変更を監視するために watch を使用する方法
  • Vueは入力タグの値をリッスンします
  • Vueはスクロールイベントを監視してスクロール監視を実装します
  • Vue.js を使用して属性の変更を監視する
  • .vue ファイルでの入力イベント (oninput) のリッスンに関する詳細な説明
  • Vueはページの更新と閉じる機能を監視します
  • vue.js 1.x および 2.0 での js の入力値の変更をリアルタイムで監視する
  • Vueデータ監視方法の使用
  • vue での監視データの変更と監視の各属性の詳細な説明

<<:  Navicat の MySQL へのリモート接続の実装手順の分析

>>:  MySQL 8.0.17 のインストールと設定のグラフィックチュートリアル

推薦する

Baotaパネルを再起動すると、「-ModuleNotFoundError: No module named 'geventwebsocket'」というメッセージが表示されます。

背景:サーバーがFlaskプロジェクトをデプロイし、python3をインストールしたため、再起動時に...

VMware vSphere6.0 サーバー仮想化の展開とインストールの図 (詳細な手順)

1. VMware vSphere 導入の早期計画のポイント1. vSphereの利点(わずかに)...

JavaScript モバイル H5 画像生成ソリューションの説明

現在、WeChatパブリックアカウントの運用活動が多く、写真を生成する必要があります。生成された写真...

TypeScript における列挙型の理解と応用シナリオ

目次1. 何ですか2. 使用数値列挙文字列列挙異種列挙自然3. 応用シナリオ要約する1. 何ですか列...

VUE+Express+MongoDBのフロントエンドとバックエンドの分離によるノートウォールの実現

付箋紙の壁シリーズを実現しようと思っています。シンプルなものはシンプル、複雑なものは多機能です。開発...

Echarts 基本入門: 棒グラフと折れ線グラフの一般的な構成

1eChartsの基本手順4つのステップ1 DOMコンテナを見つける2 初期化3 設定オプション4 ...

MySQL はパスワード強度の検証をオフにします

パスワード強度検証について: [root@mysql mysql]# mysql -uroot -p...

Alibaba Cloud イメージリポジトリを使用して外部 Docker イメージを構築する方法の詳細な説明

Alibaba Cloud Image Repositoryを使用して外部イメージをダウンロードする...

MySQL 全文インデックスガイド

全文インデックスには特別なクエリ構文が必要です。全文検索はインデックスの有無にかかわらず実行できます...

デザイン参考 WordPressウェブサイト構築成功事例

これら 16 のサイトはそれぞれ注意深く読む価値があり、どのサイトでも推奨されている Web サイト...

Node.js のフロントエンドとバックエンドのインタラクションによるユーザーログインの実装の実践

目次1. プロジェクト要件次にコーディングを始める1. フロントエンドページを作成する(CSSスタイ...

Ubuntu 18.04 で MySQL のインストール時にパスワードが要求されない場合の解決方法

Ubuntu 1804 への MySQL 5.7 のインストールについて詳しく紹介します。 MySQ...

mysqlは指定された期間内の統計データを取得します

mysqlは指定された期間内の統計データを取得します年別統計 選択 カウント(*)、 DATE_FO...

VUE ユニアプリの条件付きコーディングとページレイアウトに関する簡単な説明

目次条件付きコンパイルページレイアウト要約する条件付きコンパイル条件付きコンパイルでは、特別なコメン...

Linux bash: ./xxx: バイナリ ファイルを実行できません エラー

今日、Ubuntu 用の小さなツールを顧客に送りましたが、ユーザーはそれを受け取った後、実行できませ...