Jadual Kandungan
Card Title
Rumah hujung hadapan web View.js Cara menggunakan Vue untuk mencapai kesan stereo 3D

Cara menggunakan Vue untuk mencapai kesan stereo 3D

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

Cara menggunakan Vue untuk mencapai kesan stereo 3D

Cara menggunakan Vue untuk mencapai kesan stereo 3D

Vue ialah rangka kerja bahagian hadapan yang boleh digunakan untuk membina aplikasi satu halaman interaktif. Melaksanakan kesan stereoskopik 3D dalam Vue boleh menambahkan kesan dinamik dan visual pada halaman web. Artikel ini akan memperkenalkan cara menggunakan Vue untuk mencapai kesan stereoskopik 3D dan memberikan beberapa contoh kod khusus.

1. Persediaan

Sebelum kita mula, kita perlu pastikan Vue telah dipasang. Jika ia belum dipasang, anda boleh memasangnya melalui arahan di laman web rasmi (https://vuejs.org/).

2. Gunakan CSS3 untuk mencapai kesan 3D

Untuk mencapai kesan stereoskopik 3D dalam Vue, kami terutamanya mencapainya dengan menggunakan atribut transformasi CSS3. Atribut transform boleh mengubah bentuk, saiz dan kedudukan sesuatu elemen. Di bawah ialah komponen Vue mudah yang menggunakan CSS3 untuk mencapai kesan 3D:

<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>
Salin selepas log masuk

Dalam komponen Vue ini, kami menggunakan sifat transformasi CSS3 untuk mencapai kesan 3D. Apabila tetikus dilegar di atas kad, kad berputar 180 darjah mengelilingi paksi Y, menunjukkan bahagian belakang. Apabila tetikus meninggalkan kad, kad kembali ke keadaan lalainya.

3 Gunakan JavaScript untuk mencapai kesan interaktif

Selain menggunakan CSS3, kami juga boleh menggunakan JavaScript untuk mencapai kesan interaktif yang lebih kompleks. Dalam Vue, anda boleh menggunakan fungsi cangkuk kitaran hayat komponen dan menggabungkannya dengan JavaScript untuk operasi yang lebih fleksibel. Berikut ialah contoh penggunaan Vue dan JavaScript untuk mencapai kesan stereoskopik 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>
Salin selepas log masuk

Dalam contoh ini, kami menggunakan elemen div sebagai kubus, menyediakan 6 muka dan mendengar acara pergerakan tetikus melalui JavaScript untuk mengira kedudukan tetikus pada skrin dan tukar sudut putaran kubus. Dengan menukar nilai atribut transformasi, kesan putaran kubus dicapai.

Ringkasan

Menggunakan Vue untuk mencapai kesan stereoskopik 3D boleh menambah kesan dinamik dan visual pada halaman web. Artikel ini memperkenalkan cara menggunakan CSS3 dan JavaScript untuk mencapai kesan 3D, dan menyediakan beberapa contoh kod khusus untuk rujukan. Saya harap artikel ini dapat membantu anda dan membolehkan anda menggunakan Vue dengan lebih baik untuk mencapai kesan stereoskopik 3D.

Atas ialah kandungan terperinci Cara menggunakan Vue untuk mencapai kesan stereo 3D. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kenapa tidak ada maklumat permintaan halaman di rangkaian konsol selepas melompat Vue-router? Kenapa tidak ada maklumat permintaan halaman di rangkaian konsol selepas melompat Vue-router? Apr 04, 2025 pm 05:27 PM

Kenapa tidak ada maklumat permintaan halaman di rangkaian konsol selepas melompat Vue-router? Apabila menggunakan Vue-Router untuk pengalihan halaman, anda mungkin melihat ...

Bagaimana cara menggunakan Vue untuk melaksanakan borang petikan elektronik dengan header tunggal dan berbilang badan? Bagaimana cara menggunakan Vue untuk melaksanakan borang petikan elektronik dengan header tunggal dan berbilang badan? Apr 04, 2025 pm 11:39 PM

Cara melaksanakan borang petikan elektronik dengan header tunggal dan berbilang badan dalam Vue. Dalam pengurusan perusahaan moden, pemprosesan elektronik borang petikan adalah untuk meningkatkan kecekapan dan ...

Bagaimana untuk melaksanakan fungsi memuat naik foto ahli-ahli fotografi tinggi jenama yang berbeza di hujung depan? Bagaimana untuk melaksanakan fungsi memuat naik foto ahli-ahli fotografi tinggi jenama yang berbeza di hujung depan? Apr 04, 2025 pm 05:42 PM

Bagaimana untuk melaksanakan fungsi memuat naik foto jenama-jenama ahli fotografi yang berbeza di hujung depan apabila membangunkan projek-projek front-end, anda sering menghadapi keperluan untuk mengintegrasikan peralatan perkakasan. untuk ...

Bagaimana untuk mencapai kesan segmentasi dengan sempadan lengkung 45 darjah? Bagaimana untuk mencapai kesan segmentasi dengan sempadan lengkung 45 darjah? Apr 04, 2025 pm 11:48 PM

Petua untuk melaksanakan kesan segmen dalam reka bentuk antara muka pengguna, Segmenter adalah elemen navigasi biasa, terutamanya dalam aplikasi mudah alih dan laman web responsif. …

Bagaimana cara menggunakan El-Table untuk melaksanakan pengelompokan meja, seret dan drop penyortiran di VUE2? Bagaimana cara menggunakan El-Table untuk melaksanakan pengelompokan meja, seret dan drop penyortiran di VUE2? Apr 04, 2025 pm 07:54 PM

Melaksanakan El-Table Table Group Drag dan Drop Sorting di VUE2. Menggunakan jadual el-meja untuk melaksanakan seretan kumpulan dan penyortiran drop dalam VUE2 adalah keperluan biasa. Katakan kita mempunyai ...

Bagaimana untuk memastikan bahagian bawah objek 3D ditetapkan pada peta menggunakan Mapbox dan Three.js di Vue? Bagaimana untuk memastikan bahagian bawah objek 3D ditetapkan pada peta menggunakan Mapbox dan Three.js di Vue? Apr 04, 2025 pm 06:42 PM

Cara menggunakan Mapbox dan Three.js di Vue untuk menyesuaikan objek tiga dimensi untuk memetakan sudut tontonan. Apabila menggunakan Vue untuk menggabungkan Mapbox dan Three.js, objek tiga dimensi yang dicipta perlu ...

Adakah JavaScript Menamakan Spesifikasi Meningkatkan Isu Keserasian di Android Webview? Adakah JavaScript Menamakan Spesifikasi Meningkatkan Isu Keserasian di Android Webview? Apr 04, 2025 pm 07:15 PM

Spesifikasi Penamaan JavaScript dan Android ...

See all articles