例では、vue を使用してサイドバーのドラッグ機能を実装する方法を説明します。

PHPz
リリース: 2023-04-07 10:16:57
オリジナル
1294 人が閲覧しました

Vue は、開発者が最新の応答性の高い Web アプリケーションを迅速に構築できるようにする人気の JavaScript フレームワークです。非常に興味深い機能の 1 つは、非常に人気があり実用的な機能であるサイドバーのドラッグです。この記事では、Vue を使用してサイドバーのドラッグを実装する方法を紹介します。

最初に、Vue.js をインストールする必要があります。npm または Yarn を使用してインストールし、プロジェクトに Vue.js を導入できます:

<script src="https://cdn.jsdelivr.net/npm/vue"></script>
ログイン後にコピー

Vue.js では、次のように定義できます。コンポーネント、コンポーネント内にサイドバーをドラッグするためのコードを記述します。この例では、DragSidebar というコンポーネントを作成します。 DragSidebar コンポーネントでは、ドラッグとマウス X という 2 つのデータ プロパティを定義する必要があります。ドラッグはサイドバーがドラッグされているかどうかを示し、mouseX はマウスの X 座標を示します。

<template>
  <div class="drag-container">
    <div class="sidebar" :style="{ transform: translate }" @mousedown="mousedown"
         @mouseup="mouseup" @mousemove="mousemove">
      <div class="content">
        <slot></slot>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      dragging: false,
      mouseX: 0,
      sidebarX: 0
    }
  },
  computed: {
    translate() {
      return `translate3d(${this.sidebarX}px, 0, 0)`
    }
  },
  methods: {
    mousedown(event) {
      this.dragging = true
      this.mouseX = event.clientX
    },
    mouseup() {
      this.dragging = false
    },
    mousemove(event) {
      if (this.dragging) {
        const diff = event.clientX - this.mouseX
        this.sidebarX += diff
        this.mouseX = event.clientX
      }
    }
  }
}
</script>

<style scoped>
.drag-container {
  display: flex;
  align-items: stretch;
  height: 100vh;
  overflow: hidden;
}

.sidebar {
  width: 320px;
  min-width: 320px;
  height: 100%;
  background-color: #F2F2F2;
  transition: transform .3s ease;
}

.content {
  padding: 24px;
}
</style>
ログイン後にコピー

上記のコードでは、mousedown、mouseup、mousemove の 3 つのメソッドを定義しました。これらはそれぞれ、マウスのプレス、リリース、移動のイベントを処理します。 Mousedown では、ドラッグ プロパティを true に設定します。これは、サイドバーのドラッグが開始され、マウスの X 座標が記録されることを意味します。 Mouseup では、ドラッグ プロパティを false に設定します。これは、サイドバーのドラッグが停止することを意味します。 Mousemove では、マウスの移動距離に基づいてサイドバーの位置を調整します。

最後に、親コンポーネントで DragSidebar コンポーネントを使用し、テストのためにいくつかの子コンポーネントをそれに追加します。プロジェクトのニーズに合わせて、いくつかの CSS スタイルを自分で追加する必要がある場合があります。

<template>
  <div class="app">
    <drag-sidebar>
      <h1>Title</h1>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
      <p>Suspendisse consectetur pharetra ante sit amet bibendum.</p>
    </drag-sidebar>
    <div class="main">
      <h1>Main content</h1>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
      <p>Suspendisse consectetur pharetra ante sit amet bibendum.</p>
    </div>
  </div>
</template>

<script>
import DragSidebar from './components/DragSidebar.vue'

export default {
  components: {
    DragSidebar
  }
}
</script>

<style>
.app {
  height: 100vh;
  display: flex;
}

.main {
  flex-grow: 1;
  padding: 24px;
}
</style>
ログイン後にコピー

これは、Vue を使用してサイドバーのドラッグを実装することに関するすべてです。上記の手順を通じて、実用的なサイドバーのドラッグをすぐに実装できます。

以上が例では、vue を使用してサイドバーのドラッグ機能を実装する方法を説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート