06/04/2021, 14:48

Xây dựng chức năng scrollTo Top với jQuery - jQuery Tutorials

scrollTo là một chức năng thường hay thấy trên website, điển hình là chức năng scroll to top. Và để làm được như vậy thì ta phải sử dụng hàm animate của jQuery kết hợp với tham số truyền vào là scrollTop, đây là vị trí tính bằng pixel mà màn hình sẽ nhảy đến. Chúng ta có hai cách sử dụng phổ ...

scrollTo là một chức năng thường hay thấy trên website, điển hình là chức năng scroll to top. Và để làm được như vậy thì ta phải sử dụng hàm animate của jQuery kết hợp với tham số truyền vào là scrollTop, đây là vị trí tính bằng pixel mà màn hình sẽ nhảy đến. Chúng ta có hai cách sử dụng phổ biến, cách thứ nhất là scroll tới một vị trí nào đó trên website, cách thứ hai là scroll tới vị trí trên cùng của website.

1. jQuery scroll tới một vị trí của website

Bạn nên đặt ID cho vị trí bạn muốn scroll tới, sau đó sử dụng hàm animate trong jQuery để di chuyển tới vị trí cần thiết.

Ví dụ: XEM DEMO

$('body').animate({
        scrollTop: $("#to").offset().top
}, 500);<br />
<br />

Trong đó #to là ID của vị trí cần di chuyển tới, vì vậy bạn chỉ cần thay đổi thông số này là sử dụng được

2. jQuery scroll tới vị trí top của website

Để scroll to top thì ta chỉ cần giá giá trị của scrollTop = 0 là nó sẽ đẩy lên trên cùng. Nhưng vấn đề của chức năng này là khi đẩy lên trên cùng rồi thì button click kia sẽ bị mất, vì vậy ta phải làm thêm một số bước nữa mới hoàn thiện.

Ví dụ: XEM DEMO

function scrolltop() 
{
    var id_button = '#scrolltop';

    // Kéo xuống khoảng cách 220px thì xuất hiện button
    var offset = 220;

    // THời gian di trượt là 0.5 giây
    var duration = 500;

    // Thêm vào sự kiện scroll của window, nghĩa là lúc trượt sẽ
    // kiểm tra sự ẩn hiện của button
    jQuery(window).scroll(function() {
        if (jQuery(this).scrollTop() > offset) {
            jQuery(id_button).fadeIn(duration);
        } else {
            jQuery(id_button).fadeOut(duration);
        }
    });

    // Thêm sự kiện click vào button để khi click là trượt lên top
    jQuery(id_button).click(function(event) {
        event.preventDefault();
        jQuery('html, body').animate({scrollTop: 0}, duration);
        return false;
    });
}

Như vậy bạn chỉ cần đổi tham số #scrolltop là chương trình sẽ hoạt động bình thường.

3. Lời kết

Như vậy là mình đã giới thiệu xong chức năng scrollToscrollTo top trong jquery rồi, nếu trong project của bạn cần thì hãy lấy về mà sử dụng nhé.  Chức năng này thường được dùng trong các tab menu khi click vào thì sẽ kéo đến một vị trí nào đó hoặc là chức năng lúc kéo xuống thì xuất hiện button đẩy lên top giúp người dùng dễ thao tác với webste hơn.

Vũ Văn Thanh

12 chủ đề

2597 bài viết

0