GIỚI THIỆU
CĂN BẢN
NÂNG CAO
VUEJS 2X CĂN BẢN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Xử lý sự kiện Scroll trong VueJs 2

Trong bài tập lần này, mình sẽ tìm hiểu cách VueJS 2 hỗ trợ xử lý sự kiện Scroll, một sự kiện quan trọng khi người dùng cuộn trang web.

Xử lý sự kiện Scroll trong VueJS 2

Yêu cầu

Mình sẽ tạo một phần tử và thay đổi nội dung khi trượt (scroll) trang web. Hãy sử dụng directive @scroll để bắt sự kiện khi trang web được cuộn và thực hiện các thay đổi mong muốn vào nội dung hoặc phần tử.

Ở đây mình sẽ sử dụng VueJS 2 để theo dõi sự kiện cuộn trang và thay đổi giao diện của phần tử dựa trên việc trang web đã được cuộn hay chưa.

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Xử Lý Sự Kiện Scroll - VueJS 2</title>
  <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
  <style>
    /* CSS để tạo giao diện thân thiện hơn */
    body {
      font-family: Arial, sans-serif;
      height: 200vh; /* Để tạo đủ chiều dài cho việc cuộn trang */
      margin: 0;
    }

    #app {
      text-align: center;
      padding: 20px;
      font-size: 18px;
      background-color: #f0f0f0;
    }

    .scrolled {
      background-color: #3498db;
      color: #fff;
    }
  </style>
</head>
<body>

<div id="app">
  <div 
    :class="{ 'scrolled': isScrolled }"
    v-html="scrollMessage"
  ></div>
</div>

<script src="main.js"></script>
</body>
</html>

main.js

new Vue({
  el: '#app',
  data: {
    isScrolled: false,
    scrollMessage: 'Cuộn trang để xem sự thay đổi!'
  },
  mounted() {
    window.addEventListener('scroll', this.handleScroll);
  },
  methods: {
    handleScroll() {
      // Kiểm tra xem trang đã được cuộn hay chưa
      this.isScrolled = window.scrollY > 0;
      
      // Thay đổi nội dung khi trang đã được cuộn
      if (this.isScrolled) {
        this.scrollMessage = 'Bạn đã cuộn trang!';
      } else {
        this.scrollMessage = 'Cuộn trang để xem sự thay đổi!';
      }
    }
  },
  beforeDestroy() {
    // Lưu ý: Đảm bảo gỡ bỏ event listener để tránh memory leak
    window.removeEventListener('scroll', this.handleScroll);
  }
});

Trong đoạn mã này:

  • Mình đã sử dụng directive @scroll để bắt sự kiện khi trang web được cuộn.
  • Sử dụng directive :class để thay đổi class của phần tử dựa trên giá trị của isScrolled, từ đó thay đổi màu sắc của phần tử.
  • Sử dụng sự kiện window.scroll để kiểm tra xem trang đã được cuộn hay chưa, và thực hiện các thay đổi mong muốn vào nội dung.

Bạn có thể thí nghiệm và mở rộng đoạn mã này để thực hiện các hành động khác khi trang web được cuộn.

Thông qua bài tập về xử lý sự kiện Scroll trong VueJS 2, mình đã thấy cách VueJS 2 giúp chúng ta dễ dàng theo dõi và phản ứng với sự kiện quan trọng này. Sự kết hợp giữa directive @scroll và các khả năng của VueJS 2 đã cho phép mình tạo ra trải nghiệm người dùng tương tác và động động dựa trên cách họ tương tác với trang web.

Điều này mở ra rất nhiều cơ hội sáng tạo khi xây dựng các ứng dụng web động và tương tác, giúp mình mang đến trải nghiệm người dùng tốt nhất. Hãy tiếp tục tìm hiểu và áp dụng những khái niệm này vào dự án của bạn!

test php

Bài giải

-------------------- ######## --------------------

Câu hỏi thường gặp liên quan:

Cùng chuyên mục:

Bài tập VueJS 2: Sử dụng Axios hoặc Fetch API trong VueJS 2

Bài tập VueJS 2: Sử dụng Axios hoặc Fetch API trong VueJS 2

Bài tập VueJS 2: Two-way binding trong VueJS 2

Bài tập VueJS 2: Two-way binding trong VueJS 2

Bài tập VueJS 2: Components trong VueJS 2

Bài tập VueJS 2: Components trong VueJS 2

Bài tập VueJS 2: Binding dữ liệu trong VueJS 2

Bài tập VueJS 2: Binding dữ liệu trong VueJS 2

Sử dụng directives (v-bind, v-model) để hiển thị và cập nhật dữ liệu bằng VueJS 2

Sử dụng directives (v-bind, v-model) để hiển thị và cập nhật dữ liệu bằng VueJS 2

Tạo nút và xử lý sự kiện khi nút được nhấn trong VueJS 2

Tạo nút và xử lý sự kiện khi nút được nhấn trong VueJS 2

VueJS 2 Components: Tạo và quản lý ToDo List đơn giản

VueJS 2 Components: Tạo và quản lý ToDo List đơn giản

Các quy tắc trong VueJS 2

Các quy tắc trong VueJS 2

Tạo component và binding data trong VueJS 2

Tạo component và binding data trong VueJS 2

Tìm hiểu Scoped CSS trong VueJS 2

Tìm hiểu Scoped CSS trong VueJS 2

Sử dụng forceUpdate trong VueJS 2

Sử dụng forceUpdate trong VueJS 2

Sử dụng v-for trong VueJS 2

Sử dụng v-for trong VueJS 2

10 best practices trong VueJS 2

10 best practices trong VueJS 2

Các tạo Custom Directives trong VueJS 2

Các tạo Custom Directives trong VueJS 2

Sử dụng V-for và V-if trong VueJs 2

Sử dụng V-for và V-if trong VueJs 2

Sử dụng methods trong VueJS 2

Sử dụng methods trong VueJS 2

Khác nhau giữa slot và scoped slots trong VueJS 2

Khác nhau giữa slot và scoped slots trong VueJS 2

Tìm hiểu Slots trong VueJS 2

Tìm hiểu Slots trong VueJS 2

Xử lý Custom Events trong VueJS 2

Xử lý Custom Events trong VueJS 2

Ref và Reactive trong VueJS 2

Ref và Reactive trong VueJS 2

Top