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

推薦する

vue.js パッケージ化プロジェクトの後の空白ページの解決策

Vueに触れたばかりのパートナーの多くは、開発環境ではVueプロジェクトは正常であるが、パッケージ化...

MySQL 5.7.17 インストール グラフィック チュートリアル (Windows)

最近データベースを学び始めたのですが、とても興味深いコースだと感じていますが、含まれる内容の多くは私...

Flash が HTML div 要素を覆わないようにする方法

今日、フラッシュ広告のコードを書いていたとき、フラッシュに付属するリンクはポップアップ広告と間違われ...

Mysqlツリー再帰クエリの実装方法

序文部門テーブルなどのデータベース内のツリー構造データの場合、部門のすべての従属部門または部門のすべ...

Linux でアップロードされたファイルのスケジュールされたバックアップと増分バックアップを実装する方法

導入Alibaba Cloud のような OSS ストレージ サービスを使用している場合は、サービス...

MySQL フルテキスト検索の中国語ソリューションとサンプルコード

MySQL 全文検索中国語ソリューション最近、会社のプロジェクトで、データベースで中国語を検索する機...

Hbase 入門

1. HBaseの概要1.1 HBaseとはHBase は、高い信頼性、高いパフォーマンス、列ストレ...

MySQLのさまざまなオブジェクトのサイズと長さの制限について話しましょう

目次識別子の長さ制限権限テーブルの範囲フィールドの長さ制限データベースとテーブルの数の制限テーブルサ...

Vue ルーティング this.route.push ジャンプ ページが更新されない場合の解決策

Vue ルーティング this.route.push ジャンプ ページが更新されない1. 背景概要:...

この記事は、Dockerにおけるcgroupの具体的な使用法を徹底的に理解するのに役立ちます。

目次cgroupとはcgroupの構成cgroupが提供する機能cgroup 内の CPU を制限す...

MySQL でテーブル データを削除した後もディスク領域がまだ占有されているのはなぜですか?

目次1.MySQLデータ構造2. テーブルファイルのサイズは変更されておらず、MySQLの設計に関連...

HTML ページはダーク モードの実装をサポートします

2019年から、AndroidとiOSの両方のプラットフォームでダークモードが使用され始めました。も...

JavaScriptエラーキャプチャの詳細な説明

目次1. 基本的な使い方とロジック2. 特徴3. エラーオブジェクト4. キャッチアンドスロー戦略の...

Docker 実行時にユーザーとグループを管理する方法

Docker はプロセスを中核としてシステムリソースを分離する管理ツールです。分離は、オペレーティン...

MySQLサーバーは--read-onlyオプションで実行されているため、このステートメントを実行できません

会議中に同僚から開発ライブラリを書き込めないとの報告を受けました。エラー メッセージは次のとおりでし...