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 デプロイメント コードの詳細な説明

推薦する

MySQL における楽観的ロック、悲観的ロック、MVCC の包括的な分析

序文データベースの実際の使用では、データの書き込みや読み取りを同時に行わないことが必要な状況によく遭...

2列の水平タイムラインを実装するためのVueサンプルコード

目次1.コンポーネントtimelineH.vueを実装する2. コンポーネントの呼び出しこの記事では...

Linux で履歴コマンドを表示および実行する方法

履歴コマンドを表示し、指定されたコマンドを実行します owen@owen:~/owen/softwa...

Alibaba Cloud ECS centos6.8 に MySql5.7 をインストールして設定するチュートリアル

Alibaba Cloud yum コマンドでのデフォルトの MySQL バージョンは 5.17**...

CentOS に PHP5 をインストール、PHP をアンインストール、PHP7 をインストールするチュートリアル

まず、PHP5をインストールするのはとても簡単ですyum install php PHP5 を使用し...

CentOS7 は rpm を使用して MySQL 5.7 をインストールするチュートリアル図

1. 4つのrpmパッケージをダウンロードする mysql-コミュニティクライアント-5.7.26-...

Dockerfile における VOLUME と docker -v の違い

Dockerfile でのボリュームのマウントと docker -v コマンドによるマウントには明ら...

マージンの重複問題を解決する方法

1. まず、2つ以上の隣接する通常フローブロック要素の垂直マージンの崩壊を引き起こす原因を知る必要が...

JavaScript のディープコピーの落とし穴

序文以前、ある会社の面接に行ったとき、面接官から「オブジェクトを深くコピーするにはどうすればよいです...

レスポンシブデザインについて知っておくべきこと

レスポンシブデザインとは、ウェブサイトの開発プロセス中に、ユーザーの操作やデバイス環境に応じて対応す...

HTML CSS JS はタブページのサンプルコードを実装します

コードをコピーコードは次のとおりです。 <html xmlns="">...

サーバー上で Nginx を使用して Springboot プロジェクトをデプロイする方法の詳細なチュートリアル (jar パッケージ)

1. Javaプロジェクトをjarパッケージにパッケージ化するここではMavenツールを使用します...

MySQL 8の新機能ウィンドウ関数の役割

MySQL 8.0 の新機能は次のとおりです。 Unicode 9.0 をすぐに完全にサポートウィン...

JavaScript で Baidu Maps API にアクセスする方法と手順

目次1. Baidu Map API アクセス2. HTML で Baidu Map API を使用...

Mysql 更新マルチテーブル共同更新方法の概要

次に、2 つのテーブルを作成し、一連の SQL 文を実行します。SQL 文の実行後にテーブル内のデー...