Vue プロジェクトで div ホイールのズームインとズームアウト、ドラッグ効果、キャンバス効果に似た機能を実装します。 1. vue-draggable-resizable プラグインをインポートし、ここをクリックして GitHub アドレスを入力します。 1)、npm install --save vue-draggable-resizable
3) vueファイルで使用する main.js: 'vue' から Vue をインポートします './App' から App をインポートします './router' からルーターをインポートします Vue.config.productionTip = false // iview 'view-design' から ViewUI をインポートします。 'view-design/dist/styles/iview.css' をインポートします。 Vue.use(ビューUI) // ドラッグ、ズーム、キャンバス プラグイン import VueDraggableResizable from 'vue-draggable-resizable' 'vue-draggable-resizable/dist/VueDraggableResizable.css' をインポートします。 Vue.component('vue-draggable-resizable', VueDraggableResizable) 新しいVue({ el: '#app', ルーター、 コンポーネント: { アプリ }, テンプレート: '<App/>' }) vue ファイル: vue-draggable-resizableコンポーネント構成項目とhandleTableWheel メソッドおよびtableZoomメソッドの導入に重点を置きます。 <テンプレート> <div class="is"> <div style="高さ: 800px; 幅: 100%; 境界線: 1px solid #000; 位置: relative; オーバーフロー: hidden;" > <!-- コンポーネントをインポートします。 :lock-aspect-ratio="true": アスペクト比をロックします:resizable="false": スケーラブルではありません --> <vue-ドラッグ可能-サイズ変更可能 w="自動" h="自動" :grid="[20,40]" :x="10" :y="10" :サイズ変更可能="false" > <div class="table" ref="table" @wheel.prevent="handleTableWheel($event)"> <-- iview テーブル、何でも構いません、どの div でも構いません --> <表 :columns="列1" :data="データ1" サイズ="小" :disabled-hover="true" 国境 > <テンプレート スロット スコープ="{ 行, インデックス }" スロット="名前"> <ツールチップ:content="row.name" placement="top" 転送> <span class="name" @click="handleCellClick(row)">{{ row.name }}</span> </ツールチップ> </テンプレート> </表> </div> </vue-ドラッグ可能-サイズ変更可能> </div> </div> </テンプレート> <スクリプト> 「vue-draggable-resizable」から VueDraggableResizable をインポートします。 エクスポートデフォルト{ 名前: "は", データ() { 戻る { 列1: [ { タイトル:「名前」、 スロット: "名前", 幅: 120 }, { タイトル: 「年齢」、 キー: "年齢", 幅: 120 }, { タイトル:「住所」、 キー: "アドレス"、 幅: 120 }, { タイトル:「名前」、 キー: "名前", 幅: 120 }, { タイトル: 「年齢」、 キー: "年齢", 幅: 120 }, { タイトル:「住所」、 キー: "アドレス"、 幅: 120 }, { タイトル:「名前」、 キー: "名前"、 幅: 120 }, { タイトル: 「年齢」、 キー: "年齢", 幅: 120 }, { タイトル:「住所」、 キー: "アドレス"、 幅: 120 } ]、 データ1: [ { 名前: 「ジョン・ブラウン」 年齢: 18歳 住所:「ニューヨークNo.1レイクパーク」 }, { 名前: 「ジム・グリーン」 年齢: 25歳 住所:「ロンドンNo.1レイクパーク」 セルクラス名: { 年齢: "デモテーブル情報セルの年齢", アドレス: "デモ テーブル情報セル アドレス" } }, { 名前:「ジョー・ブラック」 年齢: 30, 住所:「シドニーNo.1レイクパーク」 }, { 名前:「ジョン・スノウ」 年齢: 26歳 住所:「オタワNo.2レイクパーク」 セルクラス名: { 名前: "デモ テーブル情報セル名" } }, { 名前: 「ジョン・ブラウン」 年齢: 18歳 住所:「ニューヨークNo.1レイクパーク」 }, { 名前: 「ジム・グリーン」 年齢: 25歳 住所:「ロンドンNo.1レイクパーク」 セルクラス名: { 年齢: "デモテーブル情報セルの年齢", アドレス: "デモ テーブル情報セル アドレス" } }, { 名前:「ジョー・ブラック」 年齢: 30, 住所:「シドニーNo.1レイクパーク」 }, { 名前:「ジョン・スノウ」 年齢: 26歳 住所:「オタワNo.2レイクパーク」 セルクラス名: { 名前: "デモ テーブル情報セル名" } } ] }; }, マウント() {}, メソッド: { handleTableWheel(イベント) { obj = this.$refs.table; とします。 this.tableZoom(obj, event) を返します。 }, テーブルズーム(オブジェクト、イベント) { // デフォルトでは最初は100%です zoom = parseInt(obj.style.zoom, 10) || 100 とします。 //ホイールを1回回転すると、wheelDeltaの値が120増加または減少します ズーム += event.wheelDelta / 12; (ズーム>0)の場合{ obj.style.zoom = ズーム + "%"; } false を返します。 }, // セルのクリック イベント (ドラッグによってテーブルのデフォルト イベントがブロックされるかどうかをテストするために使用されますが、これは無関係です) ハンドルセルクリック(行) { this.$Message.info("クリックしました" + row.name); } } }; </スクリプト> <style スコープ lang="less"> 。は { 。テーブル { 。名前 { カーソル: ポインタ; } } } // iview テーブル スタイル: iview の公式 Web サイトからコピーするだけです。問題ありません/deep/ .ivu-table { .demo-table-info-row td { 背景色: #2db7f5; 色: #fff; } td.demo-table-info-column { 背景色: #2db7f5; 色: #fff; } .demo-table-error-row td { 背景色: #ff6600; 色: #fff; } .demo-table-info-cell-name { 背景色: #2db7f5; 色: #fff; } .demo-table-info-cell-age { 背景色: #ff6600; 色: #fff; } .demo-table-info-cell-address { 背景色: #187; 色: #fff; } } // canvas.vdr 内の div 境界を削除します { 境界線: なし; } </スタイル> 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: VirtualBox CentOS7.7.1908 Python3.8 ビルド Scrapy 開発環境 [グラフィックチュートリアル]
>>: Windows での MySQL 8.0.13 解凍バージョンのインストール グラフィック チュートリアル
私たち、特に Linux エンジニアは毎日 Linux サーバーを扱っています。サーバーのセキュリテ...
序文Js は現在最も一般的に使用されているコード操作言語であり、その中でも new 演算子は特によく...
Docker を実行するには root 権限が必要です。非 root ユーザーに docker コマ...
MySQL 8.0圧縮パッケージのインストール方法、詳細は次のとおりです知らせ:オペレーティング シ...
目次グローバル変数 globalDataページプライベート変数データストレージ非同期ストレージ(デバ...
フォーム内のフォーム フィールドが無効に設定されている場合、フォーム フィールドの値は送信されません...
この記事では、MySQL マスター/スレーブ データベースの構築方法について説明します。ご参考までに...
NC のフルネームは Netcat (Network Knife) で、作成者は Hobbit &a...
最近、CSS3 アニメーションのソース コードの実装をいくつか見ていたところ、CSS コード アニメ...
まず、MySQL とは何かを理解しましょう。 MySQL は、スウェーデンの会社 MySQL AB ...
目次1. ジョブ実行のフォールトトレランス1.1 タスクフェイルオーバー戦略1.2 ジョブ再開戦略2...
1. よく使われるHTMLタグの最適化HTML は Web 編集者にとって基本的なスキルであるべきで...
/**************************** * システムコール**********...
この記事では、Docker で新しいイメージを手動で構築する方法を紹介し、皆さんと共有します。詳細は...
この記事では、MySQL 8.0.12のインストール方法に関する詳細なチュートリアルを参考までに紹介...