vueプロジェクトは特定の領域に透かしを描くことを実現する

vueプロジェクトは特定の領域に透かしを描くことを実現する

この記事では、Vueを使用して特定の領域に透かしを描く方法を紹介します。具体的な内容は次のとおりです。

まず、効果を見てみましょう。

実際、原理は非常に単純です。つまり、キャンバスを使用して画像を描画し、div の背景を設定します。ここでは、他の人のアイデアを参考にして、自分のニーズに合わせてプラグインをカプセル化します。プロジェクトで直接使用できます。ここでは、別の領域に透かしを設定できます。

「厳密な使用」
 
定数ウォーターマーク = {}
 
/**
 *
 * @param {設定する透かしの内容} str
 * @param {透かしを設定するコンテナ} コンテナ
 */
const setWatermark = (str, コンテナ) => {
  定数id = '1.23452384164.123412415'
 
  if (コンテナ === 未定義) {
    戻る
  }
 
  // ページに存在するかどうかを確認し、存在する場合は削除します if (document.getElementById(id) !== null) {
    定数子要素 = document.getElementById(id)
    子要素.親ノード.子要素を削除します。
  }
 
  var containerWidth = container.offsetWidth // 親コンテナの幅を取得します。 var containerHeight = container.offsetHeight // 親コンテナの高さを取得します。 container.style.position = 'relative' // レイアウトを相対レイアウトに設定します。 // キャンバス要素を作成します (最初に背景画像を作成します)
  const can = document.createElement('canvas')
  can.width = 390 // 各ブロックの幅を設定します can.height = 200 // 高さ const cans = can.getContext('2d') // キャンバスを取得します cans.rotate(-20 * Math.PI / 180) // 反時計回りに π/9 回転します
  cans.font = '20px Vedana' // フォントを設定 cans.fillStyle = 'rgba(200, 200, 200, 0.20)' // フォントの色を設定 cans.textAlign = 'left' // テキストの配置 cans.textBaseline = 'Middle' // テキストのベースライン cans.fillText(str, 0, 4 * can.height / 5) // テキストを描画 // div 要素を作成 const div = document.createElement('div')
  div.id = id // id を設定
  div.style.pointerEvents = 'none' // すべてのイベントをキャンセル div.style.top = '0px'
  div.style.left = '0px'
  div.style.position = '絶対'
  div.style.zIndex = '100000'
  div.style.width = コンテナ幅 + 'px'
  div.style.height = コンテナの高さ + 'px'
  div.style.background = 'url(' + can.toDataURL('image/png') + ') 左上繰り返し'
  container.appendChild(div) // ページに追加してIDを返す
}
 
// このメソッドは一度だけ呼び出すことができます watermark.set = (str, container) => {
  id = setWatermark(str, コンテナ) とします。
  間隔を設定する(() => {
    document.getElementById(id) が null の場合 {
      id = setWatermark(str, コンテナ)
    }
  }, 500)
  // ページサイズの変更をリッスンする window.onresize = () => {
    setWatermark(文字列、コンテナ)
  }
}
 
デフォルトの透かしをエクスポート

ページ上での使用方法:

プラグインをインポートします:

'@/external/watermark' から Watermark をインポートします

次に、必要な位置に refs="xxx" を設定します。Vue プロジェクトでは、document.getElement で要素を直接取得することはできず、this.$refs.xxx を通じてのみ取得できるためです。

<div ref="directrecordwp" class="wrapper">

次に、マウントされたフック関数に次のように記述します。

// ページの透かしを設定します Watermark.set('College Party and Government Cloud Record Management Platform' + this.name, this.$refs.directrecordwp)

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

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

<<:  MySQLデータベース入門:データベースバックアップ操作の詳細な説明

>>:  MySQLデータベースのマスタースレーブ同期の実際のプロセスの詳細な説明

推薦する

Linux 論理ボリューム管理 (LVM) の使用法の概要

ディスク領域の管理は、システム管理者にとって重要な日常的なタスクです。ディスク領域が使い果たされると...

divとspanの違いと使い方

目次1. DIVとSPANの違いと特徴2. スパンタグの概要3. 拡大と改善4. 凡例の効果の実証例...

同じレベルの要素で Position:fixed と margin-top を一緒に使用する場合の CSS の問題

問題の説明CSS を使用して上部の固定効果を実現したいと思います。 margin-top と pos...

デザイン理論:人間中心のグリーンデザイン

「人間中心」と「グリーンデザイン」という2つの視点から考える——デザイン業界の同僚とも議論する2つの...

画像プレビュー付きのアップロードフォームの完全な HTML

画像プレビュー機能付きのアップロードフォーム、完全なHTMLコードは次のとおりです。 <htm...

Navicat PremiumはMySQLデータベースを操作します(SQL文を実行します)

1. Navicatの紹介1. Navicat とは何ですか? Navicat は強力な MySQ...

tbodyタグの魔法はテーブルコンテンツの表示を高速化します

他の人のウェブページを保存して見たことがあると思いますが、特にdwで開くと、多くのウェブページに&l...

Navicatは機能ソリューション共有を作成できません

初めて MySQL FUNCTION を書いたとき、エラーが何度も発生しました。 Err] 1064...

MySql はコミットする必要がありますか?

MySQL が挿入などの操作を実行するときにコミットする必要があるかどうかは、ストレージ エンジン...

ディレクトリスクロール効果を実現するネイティブJS

これはネイティブ JS で実装されたテキスト スクロール効果です。この効果は通常、ニュース、ダイナミ...

MySQL 全文あいまい検索 MATCH AGAINST メソッドの例

MySQL 4.x 以降では、全文検索 MATCH ... AGAINST モード (大文字と小文字...

React で setInterval 関数を使用する例

この記事はWindows 10のシステム環境をベースに、Reactの学習と使用について説明しています...

Jenkins の docker-compose デプロイメントと構成に関する詳細なチュートリアル

Docker-compose デプロイメント構成 Jenkins 1. Docker-compose...

jsのイベントループ機構の解析

序文ご存知のとおり、JavaScript は本質的にシングルスレッドですが、ブラウザは非同期リクエス...

ネイティブ JS でスネーク ゲームを書く

この記事では、参考までに、JSでスネークゲームを書くための具体的なコードを紹介します。具体的な内容は...