Bài tập javascript 18 – Hiệu ứng Scroll Transition

0
171

bài tập javascript 18 chúng ta sẽ viết hiệu ứng scroll transition. Hiệu ứng scroll transition được sử dụng khá nhiều, vào mấy trang web tin tức như zing.vn, kênh 14 .. Hầu như đều sử dụng hiệu ứng này, nó được sử dụng để quay lại đầu trang. Khi mà người dùng cuộn chuột xuống, mình xin được bắt đầu bài viết.

scroll transition

 

Kiến thức cần có:

  1. Biến
  2. Câu lệnh if – else
  3. Mảng
  4. Hàm
  5. Event
  6. HTML DOM

Bài tập javascript 18 – Hiệu ứng Scroll Transition

Mô tả bài tập: Khi chúng ta cuộn chuột xuống, để trở lại đầu trang chúng ta chỉ cần click vào cái icon up. Lúc chuyển động lên thì nó sẽ chuyển động từ từ. Đây là lí do gọi là scroll transition chứ thực ra chúng ta không sử dụng được thuộc tính transition của css cho hiệu ứng này.

Demo:

Click vào bài tập js 18 để xem kết quả, nhớ cuộn chuột xuống rồi hãy click vào icon nhé :D.

Mình sẽ code và giải thích chi tiết ngay phía sau, mình viết hiệu ứng này bằng js thuần còn nhanh hơn dùng jquery.

Code: html

Code:css

Code: js

Kết quả:

scroll transition

Giải thích:

  • Mình sẽ lấy vị trí hiện tại khi cuộn chuột bằng phương thức self.pageYOffset 
  • Tạo thêm một biến set = chiều cao hiện tại
  • Sử dụng phương thức setInterval để xác định chiều cao sau mỗi bao nhiêu giây đó, càng dài thì nó chuyển động càng chậm
  • Trong function anonymous của phương thức setInterval xác định chiều cao hiện tại bằng chính nó trừ đi cái biến set * 0.05. 
  • Theo như đoạn code của mình ở trên thì cứ sau 0.015 s thì biến chieucaoht sẽ thay đổi chó đến <= 0 thì dừng vì mình clear nó đi.
  • window.scrollTo(0,chieucaoht) phương thức này sẽ cuộn chuột đến vị trí của chieucaoht sau mỗi 0.015s.

Okê xong rồi đấy, vậy là mình đã xử lý xong hiệu ứng scroll transition rồi nhé. Mình sẽ trở lại với những hiệu ứng khác, mình xin được kết thúc bài viết tại đây.

Xem bài viết tiếp theo tại đây.

Cho đi kiến thức bạn đang có là cách tuyệt vời để nâng cao trình độ của bản thân!
Subscribe
Notify of
guest
0 Bình luận
Inline Feedbacks
View all comments