Vue のグローバル ウォーターマーク実装例

Vue のグローバル ウォーターマーク実装例

[要件] システムページには透かしが表示されますが、ログインページには透かしがありません(ログアウト時にログインページに透かしは表示されません)

1. 透かしのJsファイルを作成する

/*
 * @著者: 劉暁児* @日付: 2021-07-15 14:43:27
 * @最終編集時間: 2021-07-15 15:00:27
 * @LastEditors: LastEditorsを設定してください
 * @Description: 透かしを追加 * @FilePath: /huashijc_MeetingSys/src/common/warterMark.js
 */
「厳密な使用」
 
ウォーターマークを {} にします
 
setWatermark = (str) => {を設定します。
  id = '1.23452384164.123412415' とします
 
  document.getElementById(id) が null の場合:
    document.body.removeChild(document.getElementById(id))
  }
 
  can = document.createElement('canvas') とします。
  幅 = 250
  高さ = 120
 
  cans = can.getContext('2d') とします。
  缶を回転します(-15 * Math.PI / 150)
  cans.font = '20px ヴェダナ'
  cans.fillStyle = 'rgba(200, 200, 200, 0.20)'
  cans.textAlign = '左'
  cans.textBaseline = '中央'
  cans.fillText(str, can.width / 8, can.height / 2)
 
  div = document.createElement('div') とします。
  div.id = id
  div.style.pointerEvents = 'なし'
  div.style.top = '35px'
  div.style.left = '0px'
  div.style.position = '固定'
  div.style.zIndex = '100000'
  div.style.width = document.documentElement.clientWidth + 'px'
  div.style.height = document.documentElement.clientHeight + 'px'
  div.style.background = 'url(' + can.toDataURL('image/png') + ') 左上繰り返し'
  ドキュメント本体に子要素を追加します。
  戻りID
}
 
// このメソッドは一度だけ呼び出すことができますwatermark.set = (str) => {
  id = setWatermark(str) とします。
  間隔を設定する(() => {
    document.getElementById(id) が null の場合 {
      id = setWatermark(str)
    }
  }, 500)
  ウィンドウのサイズ変更 = () => {
    ウォーターマークを設定する(文字列)
  }
}

const outWatermark = (id) => {
    document.getElementById(id) が null の場合:
      定数div = document.getElementById(id)
      div.style.display = 'なし'
    }
}
ウォーターマーク.out = () => {
    定数str = '1.23452384164.123412415'
    アウトウォーターマーク(文字列)
}
 
デフォルトの透かしをエクスポート

2. 導入操作

2.1 App.vueや他のページでの参照

// 1.App.vue ファイルで、ファイルをインポートします。import Watermark from '@/common/watermark';

計算: {
  ユーザー名() {
    定数名 = this.$store.state.user.name
    return (name && name.length > 0) ? name : 'ユーザー名が取得されませんでした'
  }
},
マウント() {
  ウォーターマーク.set(this.userName)
}

// 2. 他のページで import Watermark from '@/common/watermark' を参照します。

作成された() {
  ウォーターマークを設定します('admin')
}

2.2 ルータ設定ファイル内の参照

const outWatermark = (id) => {
  document.getElementById(id) が null の場合:
    定数div = document.getElementById(id)
    div.style.display = 'なし'
  }
}

router.afterEach((to) => {
 if(to.path == '/'){
  Watermark.out() // 透かしをクリア }else{
  Watermark.set('ユーザー名が取得されていません') // 透かしのタイトルを設定します
 }
});

Vue のグローバル ウォーターマークの実装例に関するこの記事はこれで終わりです。Vue のグローバル ウォーターマークに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • vueプロジェクトは特定の領域に透かしを描くことを実現する
  • Vueは透かし効果を簡単に実現します
  • Vueはカスタム命令を使用してページの下部に透かしを追加します
  • Vue は PDF.js を統合して PDF プレビューを実装し、透かしを追加する手順を実行します。
  • クラスを使用して透かしを作成およびクリアする Vue サンプルコード
  • Vue で画像と画像の透かしを隠しテキスト情報とともに使用する方法
  • Vueはページ透かし機能を実装
  • Vueはページに透かし効果を追加する機能を実装します

<<:  MySQL クラスター化インデックスのページ分割原理の分析例

>>:  Linux CRM デプロイメント コードの詳細な説明

推薦する

3つの簡単な調整でMySQLを最適化する

私は熟練した DBA になるつもりはありませんが、MySQL を最適化するときは、いくつかの構成を調...

Linux gzipコマンドの使用

1. コマンドの紹介gzip (GNU zip) コマンドは、ファイルの圧縮と解凍に使用されます。こ...

アダプティブ Web デザインの手法 (モバイル フォンでの優れたアクセス エクスペリエンス)

1. HTML ヘッダーにビューポート タグを追加します。ウェブサイトの HTML ファイルの先頭...

MySQLのグローバルロックとテーブルロックに関する詳細な理解

序文ロックの範囲に応じて、MySQL のロックは、グローバル ロック、テーブル ロック、行ロックに大...

1時間で学ぶMySQLの基礎

目次MySQL を使い始めるMySQL 管理6. MySQL サーバーを起動および停止します。 7....

tomcat9.exeをクリックするとクラッシュする問題を解決する方法

ある読者から連絡があり、ダウンロードが終了し、操作がまだ開始されていないのに、なぜ Tomcat の...

MySQL で日付を保存するためのベスト プラクティス ガイド

目次序文時間型を保存するのに文字列を使用しないでくださいMySQL の日付型日時タイムスタンプTIM...

MySql ストアド プロシージャ パラメータの初歩的な使用法の詳細な説明

パラメータでのストアドプロシージャの使用IN パラメータは、プロシージャに情報を渡すためにのみ使用さ...

Dockerコアとインストールの具体的な使い方

1. Docker とは何ですか? (1)DockerはLinuxコンテナ内でアプリケーションを実行...

JS ES 新機能テンプレート文字列

目次1. テンプレート文字列とは何ですか? 2. 複数行のテンプレート文字列2.1 式付きテンプレー...

Windows サーバー ポートを開きます (例としてポート 8080 を使用します)

ポートとは何ですか?私たちが通常参照するポートは、物理的な意味でのポートではなく、具体的には TCP...

Vue の下部ナビゲーション バー TabBar を実装するための非常に詳細なチュートリアル

目次プロジェクト紹介:プロジェクトディレクトリ: TabBar 効果のプレビュー: TabBar 実...

dockerコンテナにviコマンドをインストールする簡単な操作

docker コンテナを使用する場合、vim がインストールされていないことがあり、vim コマンド...

VueはGraphVisを使用して無限に拡張された関係グラフを開発します

1. GraphVis 公式サイトにアクセスして、対応する js をダウンロードします。js の新し...

フレックスレイアウトの互換性の問題の概要

1. W3C バージョンの flex 2009年版フラグ: display: box; または bo...