この記事では、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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQLデータベース入門:データベースバックアップ操作の詳細な説明
>>: MySQLデータベースのマスタースレーブ同期の実際のプロセスの詳細な説明
コンピュータ サイエンスで最も一般的に使用され、議論されているデータ構造の 1 つは、二分探索木です...
01. コマンドの概要gcc コマンドは、GNU がリリースした C/C++ ベースのコンパイラを使...
1. 一般的な使用法: (1)%で使用する% は 1 つ以上の文字のワイルドカードを表します。たとえ...
この記事では、花火効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します。具...
記事「MySQL の最適化: キャッシュの最適化」では、システムによってコンパイルされた変数値、また...
今日、CSS の zoom 属性は何のために使用されるのかと尋ねられました。この属性は、フローティン...
MySQLパスワードは正しいが、ローカルでログインできない -1045 ユーザー 'roo...
目次現象:ポートの使用:ファイルにスペルミスがあります:現象: Tomcat がインストールされ、W...
テーブルヘッダーでは、暗い境界線の色を個別に定義できます。基本的な構文<TH 境界線の色を暗く...
目次Linux - ファイル記述子、ファイルポインタ、インデックスノード1. Linux - ファイ...
Docker コンテナはサービスを提供し、ポート 8888 をリッスンします。外部からアクセスできる...
1. 環境の説明(1) CentOS-7-x86_64、カーネルバージョン uname -r は、 ...
MySQL 複数の無関係なテーブルクエリデータとページング機能要件主キーと外部キーの関連付けがない ...
1 はじめに「Maven がワンクリックで Springboot を Docker リポジトリにデプ...
目次まず、package.jsonを設定します次にwebpackツールをインストールしますwebpa...