Vue イメージ ドラッグ アンド ドロップ ズーム コンポーネントの使用方法の詳細な説明

Vue イメージ ドラッグ アンド ドロップ ズーム コンポーネントの使用方法の詳細な説明

Vueイメージドラッグアンドドロップズームコンポーネントの具体的な使い方は参考までに。具体的な内容は次のとおりです。

<ドキュメント>
  画像コンポーネント - ユーザーはズームイン、ズームアウト、ドラッグします</doc>
<テンプレート>
  <div style="width: 100%;position: relative;overflow: hidden;text-align: center;border: 1px solid #f1f2f3;">
    <el-button size='mini' @click="toBIgChange" icon="el-icon-zoom-in"
      スタイル="位置: 絶対;上: 2px;左: 2px;z-index: 999;"></el-button>
    <el-button size='mini' @click="toSmallChange" icon="el-icon-zoom-out"
      スタイル="位置: 絶対;上: 2px;左: 40px;z-index: 999;"></el-button>
    <img id="img" :src="src" alt="" @mousedown.prevent="dropImage" :style="{transform:'scale('+multiples+')'}">
  </div>
</テンプレート>
<スクリプト>
  エクスポートデフォルト{
    プロパティ: ['src'],
    データ() {
      戻る {
        倍数: 1,
        odiv: ヌル、
      }
    },
    マウント() {
      this.dropImage()
    },
    時計:
      src(新しい値、古い値) {
        this.multiples = 1
        if (this.odiv !== null) {
          this.odiv.style.left = '0px';
          this.odiv.style.top = '0px';
        }
      },
    },
    メソッド: {
      ビッグチェンジ() {
        (this.multiples >= 2)の場合{
          戻る;
        }
        this.multiples += 0.25;
      },
      //縮小toSmallChange() {
        (this.multiples <= 1)の場合{
          戻る;
        }
        this.multiples -= 0.25;
      },
      // ドラッグドロップイメージ(e) {
        e === nullの場合{
          戻る
        }
        this.odiv = e.target; // ターゲット要素を取得します // 要素に対するマウスの位置を計算します let disX = e.clientX - this.odiv.offsetLeft;
        disY = e.clientY - this.odiv.offsetTop とします。
        document.onmousemove = (e) => { // マウスが押されて移動されたイベント // 要素に対するマウスの位置をマウスの位置から減算して、要素の位置を取得します。let left = e.clientX - disX;
          top = e.clientY - disY とします。

          //要素の位置を positionX と positionY にバインドします。this.positionX = top;
          this.positionY = 左;

          //現在の要素を移動します this.odiv.style.left = left + 'px';
          this.odiv.style.top = top + 'px';
        };
        ドキュメント.onmouseup = (e) => {
          ドキュメント.onmousemove = null;
          ドキュメント.onmouseup = null;
        };
      },
    }
  }
</スクリプト>
<スタイルスコープ>
  画像 {
    幅: 100%;
    位置: 相対的;
  }
</スタイル> 

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

以下もご興味があるかもしれません:
  • Vueコンポーネントを使用して画像のドラッグとズーム機能を実現する
  • Vue は画像プレビュー効果の例 (ズームイン、ズームアウト、ドラッグ) を実装します
  • Vueはズームイン、ズームアウト、ドラッグ機能を実装しています
  • Vue 画像のスケーリングの実装 - コンポーネントのドラッグ

<<:  MySQLフィールドのデフォルト値を設定する方法

>>:  ウェブページレイアウトデザインのシンプルな原則

推薦する

ボタンと入力タイプの違いと注意点

<button> タグ<br />定義と使用法<button> ...

JavaScriptはマウスの動きに追従するボックスを実装します

この記事では、マウスの動きを追跡するためのJavaScriptの具体的なコードを参考までに紹介します...

純粋なCSSでは、子要素が親要素の幅制限を突破できる。

文章のスタイルでは、このような状況がよく見られます コードは次のとおりです <div styl...

アカウントとパスワードを記憶する機能を実現するVueの考え方とプロセス

目次実装のアイデアアカウント パスワードを保存する方法は 3 つあります。機能インターフェースアカウ...

CentOS7 に YUM 経由で MySQL 5.7 をインストールする詳細な手順

1. インストールパッケージを保存する場所に移動しますcd /home/lnmp 2. MySQL ...

WeChatミニプログラムでの仮想リストの実装例

目次序文分析する初期レンダリング方法初期最適化さらなる最適化方法2序文ほとんどのミニプログラムには、...

フラッシュプラグインを使用してPCのカメラを呼び出し、TMLページに埋め込む方法

序文この記事を書いた主な理由は、チームリーダーが、ブラウザを使用してコンピューターのカメラを呼び出し...

画像比較を実現するjQueryプラグイン

この記事の例では、画像比較を実現するためのjQueryプラグインの具体的なコードを参考までに共有して...

HTML に画像が存在しない場合にデフォルトの画像を表示する方法の例

画像リンク <img src="" /> jsを使用してURLが有効...

vue+tp5はシンプルなログイン機能を実現

この記事では、参考までに、簡単なログイン機能を実装するためのvue+tp5の具体的なコードを紹介しま...

MySql5.7.18 の文字セット構成の詳細なグラフィック説明

背景:かなり前(2017.6.5、記事にはタイムリーさがあり、特に使用されているツールは頻繁に更新さ...

html.cssオーバーフローの包括的な理解

html.cssオーバーフローの包括的な理解XML/HTML コードコンテンツをクリップボードにコピ...

レスポンシブWebデザイン学習(1) - 画面サイズと使用率の決定

最近では、モバイルデバイスがますます普及しており、ユーザーがスマートフォンやタブレットを使用して W...

クールなネオンライト効果を実現する純粋な CSS (デモ付き)

私は最近、YouTube の CSS アニメーション効果チュートリアル シリーズをフォローしています...

MySQL 8.0.15 のインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 8.0.15のインストールと設定方法を参考までに記録します。具体的な内容は以...