ホームページ ウェブフロントエンド Vue.js Vue を使用して放物線アニメーションを含むページ デザインを実装するにはどうすればよいですか?

Vue を使用して放物線アニメーションを含むページ デザインを実装するにはどうすればよいですか?

Jun 25, 2023 am 10:53 AM
vue ページデザイン 放物線アニメーション

現代のフロントエンド開発では、ユーザー エクスペリエンスを向上させるためにアニメーションを使用することが無視できない部分になっています。放物線アニメーションもその 1 つで、ページに楽しくリラックスした雰囲気を与えることができ、ショッピング カートに商品を追加するなど、ユーザーの操作が必要なさまざまなシナリオで使用できます。この記事では、Vue を使用して放物線アニメーションを含むページ デザインを実装する方法を学びます。

まず第一に、放物線アニメーションの本質が何であるかを理解する必要があります。これには主に、アニメーション カーブとアニメーション パラメータという 2 つの重要な点が関係します。アニメーション カーブは、カーブ パスを指します。放物線アニメーションは、頂点から始まり、連続的に変化するカーブ パスです。実際には、二次関数 y = ax^2 bx c です。ここで、a、b、c は次のとおりです。アニメーションパラメータ。曲線パスの式は固定されておらず、必要に応じて自由に設定できます。

次に、このアニメーション効果の実装を開始する必要があります。

最初のステップは、必要な依存関係をインストールすることです。この例では、vue-router を使用してユーザー ルーティングを管理し、Tween.js を使用してアニメーション カーブを生成します。必要なコマンドは次のとおりです。

npm install vue-router
npm install tween.js
ログイン後にコピー

2 番目のステップは、基本的なレイアウトです。基本的なレイアウトを記述するには、Vue のテンプレート構文を使用する必要があります。以下に例を示します。

<template>
  <div class="container">
    <router-link to="/">首页</router-link>
    <router-view class="content"></router-view>
  </div>
</template>
ログイン後にコピー

このテンプレートでは、単純なナビゲーション リンクとルーティング ビューが表示されます。このビューは、ナビゲーション リンクをクリックして目的のコンテンツを表示すると切り替わります。

3 番目のステップは、アニメーション効果を追加することです。 tween.js ライブラリを使用して放物線パスを生成し、それをビュー上の要素に適用する関数をコンポーネントに追加する必要があります。実装コードは次のとおりです。

<script>
import * as THREE from 'three'
import { Tween } from 'tween.js'

export default {
  name: 'HomePage',
  data() {
    return {
      position: {x: 0, y: 0, z: 0},
      velocity: {x: 0, y: 0, z: 0},
      acceleration: {x: 0, y: -9.8, z: 0},
    }
  },
  mounted() {
    const camera = new THREE.PerspectiveCamera(70, window.innerWidth / window.innerHeight, 0.1, 1000)
    camera.position.z = 75

    const scene = new THREE.Scene()

    const renderer = new THREE.WebGLRenderer()
    renderer.setSize(window.innerWidth, window.innerHeight)
    document.body.appendChild(renderer.domElement)

    const geometry = new THREE.SphereGeometry(5, 32, 32)
    const material = new THREE.MeshBasicMaterial({ color: 0xffff00 })
    const sphere = new THREE.Mesh(geometry, material)
    sphere.position.set(-30, 40, 0)
    scene.add(sphere)

    const animate = () => {
      requestAnimationFrame(animate)

      this.velocity.x += this.acceleration.x * 0.01;
      this.velocity.y += this.acceleration.y * 0.01;
      this.velocity.z += this.acceleration.z * 0.01;

      this.position.x += this.velocity.x;
      this.position.y += this.velocity.y;
      this.position.z += this.velocity.z;

      sphere.position.set(this.position.x, this.position.y, this.position.z);

      renderer.render(scene, camera)
    }

    const animateAjax = ({ start, end }) => () => {
      const tween = new Tween(this.position)
      const control = { x: this.position.x, y: this.position.y }
      const speed = 2000

      tween.to(
        { x: end.left, y: end.top },
        Math.sqrt(Math.pow(control.x - end.left, 2) + Math.pow(control.y - end.top, 2)) / speed * 1000
      )

      tween.onUpdate(() => {
        sphere.position.set(this.position.x, this.position.y, this.position.z)
      })

      tween.start()
    }

    animate()
    this.animateAjax = animateAjax
  },
  methods: {
    handleClick(e) {
      const start = { left: e.pageX, top: window.innerHeight - e.pageY - 20 }
      const end = { left: window.innerWidth - 40, top: 40 }
      this.animateAjax({ start, end })()
    }
  }
}
</script>
ログイン後にコピー

このコードでは、球の初期位置、速度、加速度のデータ属性を定義し、マウントされたフック内に Three.js シーンを作成します。 animate 関数は、ブラウザーのレンダリング間隔中にループし、球を順次作成または破棄し、その位置を移動します。 handleClick 関数は、MouseEvent オブジェクトを唯一のパラメータとして受け取ります。このオブジェクトは、Tween オブジェクトを作成し、それを球の現在の位置から固定位置に移動するために使用され、それによって放物線状のアニメーション パスが生成されます。

最後のステップは、アニメーション効果を適用することです。 handleClick 関数をトリガーしてアニメーションを開始するには、クリック イベント リスナーをテンプレートに追加する必要があります。実装コードは次のとおりです。

<template>
  <div class="home">
    <router-link class="navbar" to="/">首页</router-link>
    <h1 class="title">抛物线小球</h1>
    <div class="content">
      <div class="sphere" @click="handleClick"></div>
    </div>
  </div>
</template>
ログイン後にコピー

このコードでは、テンプレートにボールとして div 要素を追加し、それにクリック イベント リスナーを追加しました。このようにして、ユーザーがボールをクリックすると、handleClick 関数が呼び出され、放物線アニメーションが開始されます。

上記の手順により、Vue を使用して放物線アニメーションを実装するページ デザイン プロセスが完了しました。実装では、tween.js ライブラリに基づいてアニメーション カーブを生成し、アニメーションを開始する handleClick 関数を追加する必要があります。テンプレートでは、ボールのクリック イベント リスナーを追加し、それに handleClick 関数を関連付ける必要があります。この記事があなたにインスピレーションを与え、Vue をより効果的に使用してページ デザインを実装するのに役立つことを願っています。

以上がVue を使用して放物線アニメーションを含むページ デザインを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

vue.jsでJSファイルを参照する方法 vue.jsでJSファイルを参照する方法 Apr 07, 2025 pm 11:27 PM

vue.jsでJSファイルを参照するには3つの方法があります。タグ;; mounted()ライフサイクルフックを使用した動的インポート。 Vuex State Management Libraryを介してインポートします。

怠zyなロードVUEとはどういう意味ですか? 怠zyなロードVUEとはどういう意味ですか? Apr 07, 2025 pm 11:54 PM

Vue.jsでは、Lazy Loadingを使用すると、コンポーネントまたはリソースを必要に応じて動的にロードすることができ、初期ページの読み込み時間を短縮し、パフォーマンスを改善できます。特定の実装方法には、&lt; Keep-Alive&gt;および&lt;コンポーネントは&gt;コンポーネント。怠zyなロードは、FOUC(スプラッシュ画面)の問題を引き起こす可能性があり、不必要なパフォーマンスのオーバーヘッドを避けるために怠zyなロードが必要なコンポーネントにのみ使用する必要があることに注意してください。

VueでWatchの使用方法 VueでWatchの使用方法 Apr 07, 2025 pm 11:36 PM

Vue.jsの監視オプションにより、開発者は特定のデータの変更をリッスンできます。データが変更されたら、Watchはコールバック関数をトリガーして更新ビューまたはその他のタスクを実行します。その構成オプションには、すぐにコールバックを実行するかどうかを指定する即時と、オブジェクトまたは配列の変更を再帰的に聴くかどうかを指定するDEEPが含まれます。

VueでBootstrapの使用方法 VueでBootstrapの使用方法 Apr 07, 2025 pm 11:33 PM

vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

Vueのバージョンを照会する方法 Vueのバージョンを照会する方法 Apr 07, 2025 pm 11:24 PM

Vue Devtoolsを使用してブラウザのコンソールでVueタブを表示することにより、Vueバージョンを照会できます。 NPMを使用して、「NPM List -G Vue」コマンドを実行します。 package.jsonファイルの「依存関係」オブジェクトでVueアイテムを見つけます。 Vue CLIプロジェクトの場合、「Vue -Version」コマンドを実行します。 &lt; script&gt;でバージョン情報を確認してくださいVueファイルを参照するHTMLファイルにタグを付けます。

Vueによる前のページに戻る方法 Vueによる前のページに戻る方法 Apr 07, 2025 pm 11:30 PM

vue.jsには、前のページに戻る4つの方法があります。$ router.go(-1)$ router.back()outes&lt; router-link to =&quot;/&quot; Component Window.history.back()、およびメソッド選択はシーンに依存します。

Vueはマーキー/テキストスクロール効果を実現します Vueはマーキー/テキストスクロール効果を実現します Apr 07, 2025 pm 10:51 PM

CSSアニメーションまたはサードパーティライブラリを使用して、VUEでマーキー/テキストスクロール効果を実装します。この記事では、CSSアニメーションの使用方法を紹介します。スクロールテキストを作成し、テキストを&lt; div&gt;をラップします。 CSSアニメーションを定義し、オーバーフローを設定します:非表示、幅、アニメーション。キーフレームを定義し、アニメーションの開始と終了時にtranslatex()を設定します。期間、スクロール速度、方向などのアニメーションプロパティを調整します。

VUEトラバーサルの使用方法 VUEトラバーサルの使用方法 Apr 07, 2025 pm 11:48 PM

Vue.jsには配列とオブジェクトを通過するには3つの一般的な方法があります。V-Forディレクティブは、各要素をトラバースしてテンプレートをレンダリングするために使用されます。 V-BindディレクティブをV-Forで使用して、各要素の属性値を動的に設定できます。 .mapメソッドは、配列要素を新しい配列に変換できます。

See all articles