目次
Card Title
ホームページ ウェブフロントエンド Vue.js Vue を使用して 3D ステレオ効果を実現する方法

Vue を使用して 3D ステレオ効果を実現する方法

Nov 07, 2023 pm 04:51 PM
vue 3D効果 d

Vue を使用して 3D ステレオ効果を実現する方法

Vue を使用して 3D 立体効果を実現する方法

Vue は、インタラクティブな単一ページ アプリケーションの構築に使用できるフロントエンド フレームワークです。 Vue で 3D 立体効果を実装すると、Web ページにダイナミクスと視覚効果を追加できます。この記事では、Vue を使用して 3D 立体効果を実現する方法を紹介し、いくつかの具体的なコード例を示します。

1. 準備

始める前に、Vue がインストールされていることを確認する必要があります。まだインストールされていない場合は、公式 Web サイト (https://vuejs.org/) の手順に従ってインストールできます。

2. CSS3 を使用して 3D 効果を実現します

Vue で 3D 立体効果を実現するには、主に CSS3 のtransform属性を使用して実現します。変換属性は、要素の形状、サイズ、位置を変更できます。以下は、CSS3 を使用して 3D 効果を実現する単純な Vue コンポーネントです。

<template>
  <div class="container">
    <div class="card">
      <img src="/static/imghw/default1.png"  data-src="image.jpg"  class="lazy" alt="Image" />
      <div class="text">
        <h2 id="Card-Title">Card Title</h2>
        <p>Card Description</p>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  name: "Card",
};
</script>

<style>
.container {
  perspective: 1000px;  // 设置透视视角
  width: 300px;
  height: 200px;
}

.card {
  width: 100%;
  height: 100%;
  position: relative;
  transform-style: preserve-3d;  // 设置元素的变换样式为3D
  transition: transform 0.5s;
}

.card:hover {
  transform: rotateY(180deg);  // 当鼠标悬停时,元素绕Y轴旋转180度
}

img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  backface-visibility: hidden;  // 设置图像在背面时不可见
}

.text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;  // 设置文本在背面时不可见
  transform: rotateY(180deg);  // 默认显示背面
  background-color: rgba(0, 0, 0, 0.5);
  text-align: center;
  color: #fff;
  padding: 20px;
}

h2, p {
  margin: 0;
  padding: 0;
}
</style>
ログイン後にコピー

この Vue コンポーネントでは、CSS3 のtransform プロパティを使用して 3D 効果を実現します。マウスをカードの上に置くと、カードが Y 軸を中心に 180 度回転し、裏面が表示されます。マウスがカードから離れると、カードはデフォルトの状態に戻ります。

3. JavaScript を使用してインタラクティブな効果を実現する

CSS3 の使用に加えて、JavaScript を使用してより複雑なインタラクティブな効果を実現することもできます。 Vue では、コンポーネントのライフサイクル フック関数を使用し、JavaScript と組み合わせてより柔軟な操作を行うことができます。以下は、Vue と JavaScript を使用して 3D 三次元効果を実現する例です:

<template>
  <div class="container">
    <div class="cube" ref="cube">
      <div class="side" v-for="(color, index) in colors" :key="index" :style="{ backgroundColor: color }"></div>
    </div>
  </div>
</template>

<script>
export default {
  name: "Cube",
  data() {
    return {
      colors: ["red", "green", "blue", "yellow", "purple", "orange"],
    };
  },
  mounted() {
    const cube = this.$refs.cube;
    let rotateX = 0;
    let rotateY = 0;

    cube.addEventListener("mousemove", (event) => {
      rotateX = (event.clientY / window.innerHeight - 0.5) * 90;
      rotateY = (event.clientX / window.innerWidth - 0.5) * 90;

      this.rotateCube(rotateX, rotateY);
    });

    cube.addEventListener("mouseout", () => {
      rotateX = 0;
      rotateY = 0;

      this.rotateCube(rotateX, rotateY);
    });
  },
  methods: {
    rotateCube(rotateX, rotateY) {
      const cube = this.$refs.cube;
      cube.style.transform = `rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;
    },
  },
};
</script>

<style>
.container {
  perspective: 1000px;
  width: 300px;
  height: 300px;
}

.cube {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transform-origin: center center;
  transition: transform 0.5s;
}

.side {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0.9;
}

.side:nth-child(1) { transform: translateZ(150px); }
.side:nth-child(2) { transform: rotateY(90deg) translateZ(150px); }
.side:nth-child(3) { transform: rotateY(180deg) translateZ(150px); }
.side:nth-child(4) { transform: rotateY(270deg) translateZ(150px); }
.side:nth-child(5) { transform: rotateX(90deg) translateZ(150px); }
.side:nth-child(6) { transform: rotateX(-90deg) translateZ(150px); }
</style>
ログイン後にコピー

この例では、div 要素を立方体として使用し、6 つの面を設定し、マウスの移動イベントをリッスンします。 JavaScript. 画面上のマウスの位置を計算し、立方体の回転角度を変更します。トランスフォーム属性の値を変更することで、立方体の回転効果が得られます。

概要

Vue を使用して 3D 立体効果を実現すると、Web ページにダイナミクスと視覚効果を追加できます。この記事では、CSS3 と JavaScript を使用して 3D 効果を実現する方法を紹介し、参考としていくつかの具体的なコード例を示します。この記事が役に立ち、Vue をより効果的に使用して 3D 立体効果を実現できるようになることを願っています。

以上がVue を使用して 3D ステレオ効果を実現する方法の詳細内容です。詳細については、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-Routerジャンプ後にコンソールネットワークにページリクエスト情報がないのはなぜですか? Vue-Routerジャンプ後にコンソールネットワークにページリクエスト情報がないのはなぜですか? Apr 04, 2025 pm 05:27 PM

Vue-Routerジャンプ後にコンソールネットワークにページリクエスト情報がないのはなぜですか?ページリダイレクトにVue-Routerを使用する場合、あなたは...

VUEを使用して、単一のヘッダーとマルチボディを使用して電子見積フォームを実装する方法は? VUEを使用して、単一のヘッダーとマルチボディを使用して電子見積フォームを実装する方法は? Apr 04, 2025 pm 11:39 PM

Vueで単一のヘッダーとマルチボディを使用して電子見積フォームを実装する方法。現代のエンタープライズ管理では、見積フォームの電子処理は効率を改善することです。

フロントエンドにさまざまなブランドの高写真家の写真アップロード機能を実装する方法は? フロントエンドにさまざまなブランドの高写真家の写真アップロード機能を実装する方法は? Apr 04, 2025 pm 05:42 PM

フロントエンドプロジェクトを開発するときに、フロントエンドにさまざまなブランドの高ブランドの写真アップロード機能を実装する方法は、ハードウェア機器を統合する必要性に遭遇することがよくあります。のために...

45度の曲線境界でセグメンテーション効果を達成する方法は? 45度の曲線境界でセグメンテーション効果を達成する方法は? Apr 04, 2025 pm 11:48 PM

ユーザーインターフェイスデザインにセグメルダー効果を実装するためのヒントは、特にモバイルアプリケーションやレスポンシブWebページで、一般的なナビゲーション要素です。 ...

EL-Tableを使用してテーブルグループ化を実装する方法、VUE2にドラッグアンドドロップのソートをドラッグアンドドロップしますか? EL-Tableを使用してテーブルグループ化を実装する方法、VUE2にドラッグアンドドロップのソートをドラッグアンドドロップしますか? Apr 04, 2025 pm 07:54 PM

VUE2にエルテーブルテーブルグループのドラッグアンドドロップソートを実装します。 ELテーブルテーブルを使用して、VUE2にグループドラッグアンドドロップのソートを実装することは、一般的な要件です。私たちが持っているとします...

3Dオブジェクトの下部が、VUEのMapboxと3.jsを使用してマップ上に固定されていることを確認する方法は? 3Dオブジェクトの下部が、VUEのMapboxと3.jsを使用してマップ上に固定されていることを確認する方法は? Apr 04, 2025 pm 06:42 PM

VUEでMapboxと3.jsを使用して、視聴角をマップするために3次元オブジェクトを適応させる方法。 Vueを使用してMapboxとThree.jsを組み合わせた場合、作成された3次元オブジェクトは...

JavaScriptの命名仕様は、Android WebViewの互換性の問題を引き起こしますか? JavaScriptの命名仕様は、Android WebViewの互換性の問題を引き起こしますか? Apr 04, 2025 pm 07:15 PM

JavaScriptの命名仕様とAndroid ...

See all articles