1分でVueが右クリックメニューを実装

1分でVueが右クリックメニューを実装

効率的に要件を満たし、車輪の再発明を回避します。本日ご紹介したいのは、右クリック メニューをできるだけ短時間で実装する方法です。方法も非常に簡単で、プラグインで実行できます。簡単に言うと、効果の画像は次のとおりです。

レンダリング

インストール

npm インストール vue-contextmenujs

または

yarn に vue-contextmenujs を追加

使用

「vue-contextmenujs」からコンテキストメニューをインポートします。
Vue.use(コンテキストメニュー);

コードの実装

右クリック メニューを実装するには、element-ui アイコンを例に挙げます。アイコンは <i class="icon"></i> としてレンダリングされます。コードは次のとおりです。

<テンプレート>
  <div style="width:100vw;height:100vh" @contextmenu.prevent="onContextmenu"></div>
</テンプレート>

<スクリプト>
'vue' から Vue をインポートします
「vue-contextmenujs」からコンテキストメニューをインポートします。
Vue.use(コンテキストメニュー);
エクスポートデフォルト{
  メソッド: {
    onContextmenu(イベント) {
      this.$contextmenu({
        アイテム: [
          {
            ラベル: "戻る (B)",
            クリック時: () => {
              this.message = "戻る (B)";
              console.log("return(B)");
            }
          },
          { ラベル: "Forward(F)", 無効: true },
          { ラベル: "リロード (R)"、divided: true、アイコン: "el-icon-refresh" }、
          { ラベル: "(A) として保存..." },
          { ラベル: "印刷 (P)...", アイコン: "el-icon-printer" },
          { ラベル: "投影 (C)...", 分割: true },
          {
            ラベル: "Web翻訳を使用する (T)",
            分割: 真、
            最小幅: 0,
            子: [{ label: "簡体字中国語に翻訳" }, { label: "繁体字中国語に翻訳" }]
          },
          {
            ラベル: "Web ページをキャプチャ (R)"、
            最小幅: 0,
            子供たち: [
              {
                ラベル: 「視覚化領域を切り取る」、
                クリック時: () => {
                  this.message = "視覚化領域をキャプチャ";
                  console.log("インターセプト視覚化領域");
                }
              },
              { ラベル: "全画面をキャプチャ" }
            ]
          },
          { ラベル: "ページのソースコードを表示 (V)", アイコン: "el-icon-view" },
          { ラベル: "チェック(N)" }
        ]、
        event, // マウスイベント情報 customClass: "custom-class", // カスタムメニュークラス
        zIndex: 3, // メニュー スタイルの z インデックス
        minWidth: 230 // メインメニューの最小幅 });
      false を返します。
    }
  }
};
</スクリプト>

メニュー オプションはすべて items 配列内にあり、必要に応じて構成できます。このとき、右ボタンをクリックすると、メニューポップアップウィンドウが魔法のように表示されます。とても簡単ですね!

カスタムスタイル

コンソールを開いて要素を表示し、メニューのクラス名を確認します。最も外側のクラスは上記の customClass 属性で設定された値であり、スタイルは必要に応じて調整できます。

<スタイル>
.custom-class .menu_item__available:hover、
.custom-class .menu_item_expand {
  背景: #ffecf2 !重要;
  色: #ff4050 !重要;
}
</スタイル>

要約する

以上が基本的な使用方法ですが、自分で梱包するよりも大幅に時間が節約できます。左ボタンをクリックするか、ホイールをスクロールすると、メニューは自動的に破棄されることに注意してください。他のシナリオでは、this.$contextmenu.destroy() を呼び出してメニューを破棄することもできます。プラグインの構成パラメータは次のとおりです。

MenuOptions メニューのプロパティ

MenuItemOptions オプションのプロパティ

1分でVueで右クリックメニューを実装する方法についての記事はこれで終わりです。Vueの右クリックメニューに関するより詳しい内容については、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue のカスタム右クリックメニュープラグイン
  • 右クリックメニューをカスタマイズするVueネイティブメソッド
  • Vueは右クリックメニューバーを実装します
  • Vueはカスタムグローバル右クリックメニューを実装します
  • Vue の右クリック メニューのシンプルなカプセル化
  • Vue にカスタム右クリックメニューを追加する完全な例
  • Vue で右クリック メニューをカスタマイズする方法
  • ネイティブVueは右クリックメニューコンポーネント機能を実装します
  • Vue の Table コンポーネント行に右クリック メニューを実装する方法 (vue + AntDesign ベース)
  • Vue el-table は右クリックメニュー機能を実装します

<<:  Dockerコンテナ間の通信と外部ネットワーク通信の操作

>>:  iframe 適応サイズ実装コード

推薦する

CSSアニメーション属性キーフレームの詳細な説明

コラムを更新してからどれくらい経ったでしょうか?半年ですか?今年の後半は、まさに離陸、つまり文字通り...

Centos7 の起動プロセスと Systemd での Nginx の起動構成

Centos7 の起動プロセス: 1.post(電源投入時のセルフテスト) 電源投入時のセルフテスト...

MySQL マスタースレーブ同期の原理と応用

目次1. マスタースレーブ同期原理マスタースレーブ同期アーキテクチャ図(非同期同期)マスタースレーブ...

Vueのライブ放送機能の詳しい説明

最近、会社でたまたま生放送をしていたのですが、今日は私が遭遇した落とし穴を記録します。会社のサーバー...

Spring環境を構成するためのDocker-composeの手順

最近、メンバーがテストできるようにプロジェクトをパッケージ化する必要がありますが、パッケージ化された...

JavaScript 配列重複排除問題の詳細な研究

目次序文 👀リサーチを始めましょう🐱‍🏍オリジナル🧶 indexOf を使用した元の方法の最適化 ✍...

MySQLデータベース設計:Pythonを使ったスキーマ操作方法の詳しい解説

矢が放たれる前に、弓は矢にささやきました。「お前の自由は私のものだ。」スキーマは矢のようなもので、弓...

TypeScript の基本型の紹介

目次1. 基本タイプ2. オブジェクトタイプ2.1 配列2.2 タプル2.3 オブジェクト3. 型推...

Node.js パッケージ マネージャー npm の具体的な使用方法

目次目的npm init および package.json ファイルモジュールのインストールと管理モ...

MySql で、存在しない場合は挿入し、存在する場合は更新する方法

まとめシナリオによっては、レコードがない場合は挿入し、レコードがある場合は更新するという要件がある場...

Linuxプロセスネットワークトラフィック統計の実装プロセス

序文Linux には、ネットワーク接続、プロセス、およびその他の情報をリアルタイムで収集するための対...

MySQL における楽観的ロックと悲観的ロックの例

データベース管理システムにおける同時実行制御のタスクは、データベース内の同じデータに同時にアクセスす...

mysql 8.0.19 winx64.zip インストール チュートリアル

この記事は参考までにmysql 8.0.19 winx64.zipのインストールチュートリアルを記録...

CSSはフロントエンドの画像変形の問題を完璧に解決します

Toutiao IT School で、CSS がフロントエンドの画像変形の問題を完璧に解決するとい...

Vue大画面表示適応方法

この記事では、vueの大画面表示適応の具体的なコードを参考までに紹介します。具体的な内容は以下のとお...