Animation

Click Animation

v-click

Để áp dụng "click animation" cho các element, bạn có thể sử dụng v-click hoặc các component <v-click>

# Hello

<!-- Sử dụng Component: cái này sẽ ẩn cho đến khi bạn nhấn "next" -->
<v-click>

Hello World

</v-click>

<!-- Sử dụng Directive: cái này sẽ ẩn cho đến khi bạn nhấn "next" lần thứ hai -->
<div v-click class="text-xl p-2">

Hey!

</div>

v-after

Việc sử dụng v-after tương tự như v-click nhưng nó sẽ hiển thị element khi kích hoạt v-click trước đó.

<div v-click>Hello</div>
<div v-after>World</div>

Khi bạn nhấp vào nút "next", cả hai HelloWorld sẽ cùng hiển thị.

v-click-hide

Tương tự như v-click nhưng thay vì làm cho phần tử xuất hiện, nó làm cho element ẩn sau khi nhấn.

<div v-click-hide>Hello</div>

v-clicks

v-clicks chỉ được cung cấp như một component. Đó là một cách viết tắt để áp dụng v-click cho tất cả các element con của nó. Nó đặc biệt hữu ích khi làm việc với list.

<v-clicks>

- Item 1
- Item 2
- Item 3
- Item 4

</v-clicks>

Một mục sẽ hiển thị mỗi khi bạn nhấn vào "next".

Custom Số lần Click

Theo mặc định, Slidev đếm số bước cần thiết trước khi chuyển sang trang chiếu tiếp theo. Bạn có thể ghi đè cài đặt này bằng cách chuyển tùy chọn frontmatter clicks:

---
# 10 lần nhấn vào trang trình bày này, trước khi chuyển sang trang tiếp theo
clicks: 10
---

Ordering

Chuyển chỉ số nhấp chuột vào directive của bạn, bạn có thể tùy chỉnh thứ tự của việc revealing

<div v-click>1</div>
<div v-click>2</div>
<div v-click>3</div>
<!-- thứ tự bị đảo ngược -->
<div v-click="3">1</div>
<div v-click="2">2</div>
<div v-click="1">3</div>
---
clicks: 3
---

<!-- hiển thị sau 3 lần click -->
<v-clicks at="3">
  <div>Hi</div>
</v-clicks>

Chuyển đổi Element

Khi bạn áp dụng v-click cho các element của mình, nó sẽ đính kèm tên class slidev-vclick-target vào đó. Khi các element bị ẩn, tên class slidev-vclick-hidden cũng sẽ được đính kèm. Ví dụ:

<div class="slidev-vclick-target slidev-vclick-hidden">Text</div>

Sau khi click, nó sẽ trở thành

<div class="slidev-vclick-target">Text</div>

Theo mặc định, một quá trình chuyển đổi opacity được áp dụng cho các class đó:

// mặc định

.slidev-vclick-target {
  transition: opacity 100ms ease;
}

.slidev-vclick-hidden {
  opacity: 0;
  pointer-events: none;
}

Bạn có thể ghi đè chúng để tùy chỉnh các hiệu ứng chuyển tiếp trong các stylesheet tùy chỉnh của mình.

Ví dụ: bạn có thể đạt được các chuyển đổi scale bằng cách:

// styles.css

.slidev-vclick-target {
  transition: all 500ms ease;
}

.slidev-vclick-hidden {
  transform: scale(0);
}

Để chỉ định animation cho một slide hoặc layout nhất định

.slidev-page-7,
.slidev-layout.my-custom-layout {
  .slidev-vclick-target {
    transition: all 500ms ease;
  }

  .slidev-vclick-hidden {
    transform: scale(0);
  }
}

Tìm hiểu thêm về customizing styles.

Motion

Slidev được tích hợp sẵn @vueuse/motion. Bạn có thể sử dụng v-motion cho bất kỳ element nào để thực hiện motion áp dụng cho chúng. Ví dụ

<div
  v-motion
  :initial="{ x: -80 }"
  :enter="{ x: 0 }">
  Slidev
</div>

Văn bản Slidev sẽ di chuyển từ -80px về vị trí ban đầu khi khởi tạo.

Lưu ý: Slidev tải trước slide tiếp theo để trình bày, có nghĩa là các animation có thể bắt đầu trước khi bạn điều hướng đến trang. Để làm cho nó hoạt động bình thường, bạn có thể tắt tính năng tải trước cho slide cụ thể

---
preload: false
---

Hoặc kiểm soát vòng đời của element bằng v-if để có các điều khiển chi tiết

<div
  v-if="$slidev.nav.currentPage === 7"
  v-motion
  :initial="{ x: -80 }"
  :enter="{ x: 0 }">
  Slidev
</div>

Tìm hiểu chế độ Demo | @vueuse/motion | v-motion | Presets

Chuyển trang

Hỗ trợ tích hợp cho các slide KHÔNG ĐƯỢC cung cấp trong phiên bản hiện tại. Chúng tôi đang có kế hoạch bổ sung hỗ trợ cho họ trong phiên bản chính tiếp theo. Trước đó, bạn vẫn có thể sử dụng các style và librarie tùy chỉnh của mình để làm điều đó.