Vueはカスタム命令を使用してページの下部に透かしを追加します

Vueはカスタム命令を使用してページの下部に透かしを追加します

プロジェクトシナリオ

プロジェクトの背景全体にカスタム透かしを追加します。透かしのテキスト、フォントの色などを変更できます。

実装のアイデア

  • ここで使用される技術は主にキャンバスです。透かしを実現するプロセスでは、キャンバスの特性が主に使用されます。
  • キャンバス機能を使用して base64 イメージ ファイルを生成し、フォント サイズ、色などを設定します。
  • 最後に、それを背景画像として設定し、ページの透かし効果を実現します。

成果を達成する

実装コード

<テンプレート>
  <div class="water-marker">
      <div v-waterMarker="{text:'Carlo vest - All rights reserved',textColor:'rgba(180, 180, 180, 0.4)'}">
        <div class="water-marker-item">テストの問題、テストの問題、テストの問題、テストの問題、テストの問題、テストの問題</div>
      </div>
  </div>
</テンプレート>

<スクリプト>
'../../directive/test/waterMarker' から waterMarker をインポートします。
エクスポートデフォルト{
  ディレクティブ: {
    ウォーターマーカー
  },
  データ(){
    戻る {
    }
  },
  方法:{
  }
}
</スクリプト>

<スタイル lang="scss">
.ウォーターマーカー{
  高さ: 300px;
  .ウォーターマーカーアイテム{
    行の高さ: 300px;
  }
}
</スタイル>

waterMarker.js ファイルは次のとおりです。

関数 addWaterMarker(str, parentNode, font, textColor) {
  // 透かしテキスト、親要素、フォント、テキストの色 var can = document.createElement('canvas')
  親ノード.appendChild(できる)
  幅 = 200
  高さ = 150
  can.style.display = 'なし'
  var cans = can.getContext('2d')
  缶を回転します((-20 * Math.PI) / 180)
  cans.font = フォント || '16px Microsoft JhengHei'
  cans.fillStyle = textColor || 'rgba(180, 180, 180, 0.3)'
  cans.textAlign = '左'
  cans.textBaseline = '中央'
  cans.fillText(str, can.width / 10, can.height / 2)
  parentNode.style.backgroundImage = 'url(' + can.toDataURL('image/png') + ')'
}

定数ウォーターマーカー = {
  バインド: 関数 (el, バインディング) {
    水マーカーを追加します(binding.value.text、el、binding.value.font、binding.value.textColor)
  },
}

デフォルトの waterMarker をエクスポート

これで、Vue のカスタム命令を使用してページの下部に透かしを追加する方法についての記事は終了です。Vue ページの下部に透かしを追加することに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

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

<<:  MySQLソートにおけるCASE WHENの使用例

>>:  データベースSQL文の最適化

推薦する

SQL ROW_NUMBER() および OVER() メソッドのケーススタディ

構文フォーマット: row_number() over(partition by grouping ...

MySQLカーソルの使い方と機能の詳細な説明

[mysqlカーソルの使い方と機能]例:現在、テーブル A、B、C の 3 つのテーブルがあります。...

Nginx の高同時実行最適化の実践

1. チューニングの必要性​ 私は、どのように書けばいいのか本当に分からないので、共有するために最適...

openlayers6のマップオーバーレイの詳細な説明

1. オーバーレイの概要オーバーレイとは、その名の通り、別の形で地図上に表示される、覆うことを指しま...

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

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

Ubuntu 18.04 は pyenv、pyenv-virtualenv、virtualenv、Numpy、SciPy、Pillow、Matplotlib をインストールします

1. 現在、Pythonのバージョン管理ツールは数多く存在します。その中でも比較的使いやすいのがPy...

WeChatアプレットでラッキーホイールゲームを実装する方法

ここでは主に、WeChat アプレットでラッキーホイール ゲームを開発する方法を紹介します。主に J...

MySQLで偽または真を保存する方法

MySQL ブール値、偽または真を格納つまり、データベースに保存されるブール値は 0 と 1 であり...

MacにMySQLデータベースをインストールする方法を教えます

Mac 用 MySQL をダウンロード: https://downloads.mysql.com/a...

Nginx+Apache の動的および静的分離の導入の詳細な例

Nginx の動的および静的分離の概要Nginx は静的処理能力が強力ですが、動的処理能力が不十分で...

jsはブラウザを閉じるときにアカウントのログアウトを処理します

目次古典的なアプローチ質問その他の質問注意が必要な問題古典的なアプローチご存知のとおり、アカウントの...

Rancher で Kubernetes 用の標準化された VMware イメージを構築する方法

Kubernetes を学習するときは、Kubernetes 環境で練習する必要があります。ただし、...

vue3 コンポーネントでの v-model の使用と詳細な説明

目次v-model 入力で双方向バインディングデータを使用するコンポーネント内の v-model他の...

JavaScript 中断要求に対するいくつかの解決策の詳細な説明

目次1 約束呼び出しチェーンを中断する約束を破る中止メソッドのラッピング - Axios の Can...

JavaScript を使用して userAgent を通じていくつかの一般的なブラウザを判別する方法

序文通常、h5 ページを作成するときは、WeChat、QQ、Weibo などのエコシステム内でトラフ...