Vueは透かし効果を簡単に実現します

Vueは透かし効果を簡単に実現します

序文:

Vueプロジェクトで透かし効果を使用するには、コンテナを指定できます

効果画像:

1. コンテナを指定しない

2. コンテナを指定する

実施方法:

1. 新しい設定ファイルwatermark.jsを作成します。これはutilか他の場所に配置できます。

ウォーターマークを {} にします
 
setWatermark = (テキスト、ソースボディ) => {
  id = Math.random()*10000+'-'+Math.random()*10000+'/'+Math.random()*10000 とします。
 
  document.getElementById(id) が null の場合:
    document.body.removeChild(document.getElementById(id))
  }
 
  can = document.createElement('canvas') とします。
  幅 = 150
  高さ = 120
 
  cans = can.getContext('2d') とします。
  缶を回転します(-20 * Math.PI / 180)
  cans.font = '15px ヴェダナ'
  cans.fillStyle = 'rgba(0, 0, 0, .5)'
  cans.textAlign = '左'
  cans.textBaseline = '中央'
  cans.fillText(テキスト、can.width / 20、can.height)
 
  water_div = document.createElement('div') とします。
  water_div.id = id
  water_div.style.pointerEvents = 'なし'
  water_div.style.background = 'url(' + can.toDataURL('image/png') + ') 左上繰り返し'
  if(ソースボディ){
    water_div.style.width = '100%'
    water_div.style.height = '100%'
    ソースボディ.appendChild(water_div)
  }それ以外{
    water_div.style.top = '3px'
    water_div.style.left = '0px'
    water_div.style.position = '固定'
    water_div.style.zIndex = '100000'
    water_div.style.width = document.documentElement.clientWidth + 'px'
    water_div.style.height = document.documentElement.clientHeight + 'px'
    document.body.appendChild(water_div)
  }
 
  戻りID
}
 
/**
 * このメソッドは一度だけ呼び出すことができます * @param:
 * @text == 透かしの内容 * @sourceBody == 透かしが追加される場所。渡されない場合は、本文になります
 * */
watermark.set = (テキスト、ソースボディ) => {
  id = setWatermark(テキスト、ソースボディ)
  間隔を設定する(() => {
    document.getElementById(id) が null の場合 {
      id = setWatermark(テキスト、ソースボディ)
    }
  }, 2000)
  ウィンドウのサイズ変更 = () => {
    ウォーターマークを設定する(テキスト、ソースボディ)
  }
}
 
デフォルトの透かしをエクスポート

2. main.js のグローバル設定

// Watermarkimport ウォーターマークを './utils/watermark.js' からインポートします
Vue.prototype.$watermark = 透かし

3. ページに全画面透かしを使用する

this.$watermark.set("Haoxing 2731")

4. ページ内で指定されたコンテナを使用する

<el-button @click="addWatermark">クリックして透かしを追加</el-button>
<div ref="content" style="幅: 500px;高さ: 500px;境界線: 1px solid #ccc;">
 ウォーターマークを追加します(){
      this.$watermark.set("Haoxing 2731",this.$refs.content)
    }

5. フォント間の距離が大きすぎると思われる場合は、このプロパティを変更してください。

幅 = 150
高さ = 120

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

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

<<:  MySQL データベースの基礎: 基本コマンドの概要

>>:  MySQLデータベース入門:マルチインスタンス構成方法の詳しい説明

推薦する

初心者向けウェブサイト構築ガイド⑦:美しいウェブサイトを作るのはとっても簡単

私はかつて、ウェブサイトを一度も構築したことのない人々が、初心者向けのウェブサイト構築方法に関する私...

MySQL 5.6.37 (zip) ダウンロード インストール 構成 グラフィック チュートリアル

この記事では、MySQL 5.6.37のダウンロード、インストール、設定のチュートリアルを参考までに...

Dockerはコード検出プラットフォームSonarQubeを構築し、Mavenプロジェクトのプロセスを検出します

1 はじめに優れたコーディング習慣は優れたプログラマーが備えるべき資質ですが、コードの品質を保証する...

mysql zipファイルのインストールチュートリアル

この記事では、参考までにMySQL zipファイルをインストールする具体的な方法を紹介します。具体的...

MySQL実行計画の詳細な説明

EXPLAIN ステートメントは、MySQL がステートメントを実行する方法に関する情報を提供します...

ローカルで起動したときに Vue プロジェクトがクッキーを保持できない問題を解決する

vueプロジェクトをパッケージ化してサーバーにデプロイし、正常にログインできるが、ローカルで起動する...

CSS フロントエンドの知識ポイントのまとめ(必読)

1. CSS の概念: (カスケーディング スタイル シート)利点: 1. コンテンツとプレゼンテ...

Nginx http ヘルスチェック構成プロセス分析

パッシブチェックパッシブ ヘルス チェックでは、NGINX と NGINX Plus はイベントの発...

CSS3 カウントダウン効果

成果を達成する実装コードhtml <div クラス = 'ラッパー'> ...

Vue 要素と Nuxt の使用に関するヒントを共有する

1. 要素時間選択提出フォーマット変換例えば 2018年9月7日金曜日 00:00:00 GMT+0...

JavaScript はパスワードボックスの入力検証を実装します

サーバーの負荷を軽減するために、ユーザーが入力するときにフロントエンドページで簡単な検証を実行する必...

純粋な CSS3 で美しい入力ボックスアニメーションスタイルライブラリを実現 (テキスト入力愛)

純粋な CSS3 で実装された美しい入力ボックス アニメーション スタイル ライブラリを共有します ...

スタイルをより標準化するための CSS の書き方に関する 5 つのヒント

1. CSSをアルファベット順に並べるアルファベット順ではありません:コードをコピーコードは次のとお...

Vue3 の組み合わせ API における setup、ref、reactive の完全な使用方法

1. セットアップを始める次のコード関数を簡単に紹介します。 ref 関数を使用して変数の変更を監視...

Packetdrillの簡潔なユーザーガイド

1. Packetdrillのコンパイルとインストールソースコードリンク https://githu...