Làm cách nào để phát hiện trong javascript nếu người dùng đang cuộn?
scrollingtrong onscroll. (ps: không, không giống nhau)
Làm cách nào để phát hiện trong javascript nếu người dùng đang cuộn?
scrollingtrong onscroll. (ps: không, không giống nhau)
Câu trả lời:
những công việc này:
window.onscroll = function (e) {
// called when the window is scrolled.
}
biên tập:
bạn đã nói đây là một hàm trong TimeInterval ..
Hãy thử làm như vậy:
userHasScrolled = false;
window.onscroll = function (e)
{
userHasScrolled = true;
}
sau đó bên trong Khoảng thời gian của bạn, hãy chèn cái này:
if(userHasScrolled)
{
//do your code here
userHasScrolled = false;
}
Bạn vừa nói javascript trong thẻ của mình, vì vậy bài đăng của @Wampie Driessen có thể giúp bạn.
Tôi cũng muốn đóng góp, vì vậy bạn có thể sử dụng phần sau khi sử dụng jQuery nếu bạn cần.
//Firefox
$('#elem').bind('DOMMouseScroll', function(e){
if(e.detail > 0) {
//scroll down
console.log('Down');
}else {
//scroll up
console.log('Up');
}
//prevent page fom scrolling
return false;
});
//IE, Opera, Safari
$('#elem').bind('mousewheel', function(e){
if(e.wheelDelta< 0) {
//scroll down
console.log('Down');
}else {
//scroll up
console.log('Up');
}
//prevent page fom scrolling
return false;
});
Một vi dụ khac:
$(function(){
var _top = $(window).scrollTop();
var _direction;
$(window).scroll(function(){
var _cur_top = $(window).scrollTop();
if(_top < _cur_top)
{
_direction = 'down';
}
else
{
_direction = 'up';
}
_top = _cur_top;
console.log(_direction);
});
});
$('#elem').bind('scroll'không đủ tốt? CHỈNH SỬA: Đừng bận tâm, tôi đã thấy ví dụ thứ 2 của bạn.
e.originalEvent.wheelDelta || e.originalEvent.detailkhông?
wheelsự kiện.
window.addEventListener("scroll",function(){
window.lastScrollTime = new Date().getTime()
});
function is_scrolling() {
return window.lastScrollTime && new Date().getTime() < window.lastScrollTime + 500
}
Thay đổi 500 thành số mili giây sau sự kiện cuộn cuối cùng mà bạn cho là người dùng "không còn cuộn nữa".
( addEventListenertốt hơn là onScrollvì mã trước có thể cùng tồn tại độc đáo với bất kỳ mã nào khác sử dụng onScroll.)
Bạn có thể thiết lập một khoảng thời gian để tiếp tục kiểm tra xem người dùng đã cuộn hay chưa, sau đó làm điều gì đó tương ứng.
Vay mượn từ John Resig vĩ đại trong bài viết của mình .
Thí dụ:
let didScroll = false;
window.onscroll = () => didScroll = true;
setInterval(() => {
if ( didScroll ) {
didScroll = false;
console.log('Someone scrolled me!')
}
}, 250);
if(scolling). Cóif(window.onscroll)giống nhau không?