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文の最適化

推薦する

廃止された Docker は Podman に置き換えられますか?

Kubernetes チームは最近、最新バージョンの Docker でサポートされている機能を廃止...

Ubuntu 18.04 向け VMware Tools のインストールと構成のチュートリアル

この記事では、Ubuntu 18.04でのVMware Toolsのインストールと設定について記録し...

webpack イメージを base64 に変換する例

url-loader をダウンロード 糸を追加 -D URLローダー モジュール: { ルール: {...

デザイナーと開発者に役立つ 9 つの超実用的な CSS のヒント

Web デザイナーの頭の中には、仕事に関連する多くの知識が詰まっている必要があります。 CSS は、...

Linux で SpringBoot jar プログラム デプロイメント シェル スクリプトを起動および停止する方法

では早速、コードをお見せしましょう。具体的なコードは次のとおりです。 #!/bin/bash cd ...

WeChatアプレットはキャンバスを使用して時計を描画します

この記事では、キャンバスを使用してWeChatアプレットに時計を描く具体的なコードを参考までに共有し...

フォームの「Enter」、「Submit」、「Enter != Submit」を削除する方法

「Enter != Submit」問題を実装するには、通常、「ボタンの種類」と「入力ボックスの数」か...

nginx は画像表示の遅さとダウンロードの不完全さの問題を解決します

前面に書かれた最近、ある読者から、ブラウザからサーバーにアクセスすると、画像の表示が遅く、ブラウザに...

HTMLフォーム要素の詳しい解説(パート2)

HTML 入力属性値属性value 属性は、入力フィールドの初期値を指定します。 <フォーム...

数百万のデータボリュームに対する MySQL ページングクエリ方法とその最適化の提案

データベース SQL の最適化はよくある問題です。何百万ものデータ ボリュームに対してページング ク...

MySQL データ型の詳細

目次1. 数値型1.1 数値型の分類1.1.1 浮動小数点数1.1.2 ビットタイプ1.1.3 時間...

JavaScriptカルーセルの実装について

今日もとても実践的な事例です。名前を聞くだけで高度で難しそうですよね?今日はカルーセル画像の真髄を簡...

Springboot および Vue プロジェクトの Docker デプロイメントの実装手順

目次A. SpringbootプロジェクトのDockerデプロイメント1. Springbootプロ...

カルーセル効果を実現するための純粋なjs

この記事では、カルーセルマップの効果を実現するためのjsの具体的なコードを参考までに共有します。具体...