Tôi đang mã hóa trang nơi lần đầu tiên người dùng cuộn, nó không thực sự cuộn trang xuống, thay vào đó nó thêm một lớp có chuyển tiếp. Tôi muốn phát hiện khi người dùng cuộn xuống, bởi vì nếu anh ấy cuộn lên, tôi muốn nó làm điều gì đó khác. Tất cả các phương pháp mà tôi đã tìm được dựa trên việc xác định ScrollTop cơ thể hiện tại, và sau đó so sánh với cuộn cơ thểTop sau khi cuộn trang, xác định hướng, nhưng vì trang không thực sự cuộn, nên scrollTop() cơ thể không không thay đổi.Cách xác định hướng cuộn mà không thực sự cuộn
animationIsDone = false;
function preventScroll(e) {
e.preventDefault();
e.stopPropagation();
}
$('body').on('mousewheel', function(e) {
if (animationIsDone === false) {
$("#main-header").removeClass("yellow-overlay").addClass("yellow-overlay-darker");
$(".site-info").first().addClass("is-description-visible");
preventScroll(e);
setTimeout(function() {
animationIsDone = true;
}, 1000);
}
});
Đây là những gì tôi đã đi với, nhưng cách mà nó không quan trọng hướng tôi di chuyển nó kích hoạt sự kiện
lưu ý rằng 'mousewheel' bị phản đối và phi tiêu chuẩn. Mặc dù chỉ có FireFox không hỗ trợ nó. Để hỗ trợ FireFox, bạn có thể thử xử lý 'DOMMouseScroll', tương đương với' e.wheelDelta' trong trình xử lý sự kiện 'mousewheel' là về' -40 * e.detail' trong trình xử lý sự kiện 'DOMMouseScroll'. Cũng giống như jQuery loại bỏ thuộc tính, bạn phải truy cập vào 'originalEvent'. –
bạn có thể sử dụng ** [wheel event] (https://developer.mozilla.org/en-US/docs/Web/Events/wheel) **. Ở đây bạn có thể kiểm tra một ví dụ với hỗ trợ trình duyệt chéo, xử lý cuộn: ** [stackoverflow.com/questions/4989632 ...] (http://stackoverflow.com/questions/4989632/differentiate-between-scroll-up -down-in-jquery/24792018 # 24792018) ** – jherax