Wie kann ich in Javascript erkennen, ob der Benutzer einen Bildlauf durchführt?
scrollingin der einstellen onscroll. (ps: nein, das ist nicht dasselbe)
Wie kann ich in Javascript erkennen, ob der Benutzer einen Bildlauf durchführt?
scrollingin der einstellen onscroll. (ps: nein, das ist nicht dasselbe)
Antworten:
das funktioniert:
window.onscroll = function (e) {
// called when the window is scrolled.
}
bearbeiten:
Sie sagten, dies sei eine Funktion in einem TimeInterval.
Versuchen Sie es so:
userHasScrolled = false;
window.onscroll = function (e)
{
userHasScrolled = true;
}
Fügen Sie dann in Ihr Intervall Folgendes ein:
if(userHasScrolled)
{
//do your code here
userHasScrolled = false;
}
Du hast gerade Javascript in deinen Tags gesagt, also könnte dir der Beitrag von @Wampie Driessen helfen.
Ich möchte auch einen Beitrag leisten, damit Sie bei Verwendung von jQuery Folgendes verwenden können, wenn Sie es benötigen.
//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;
});
Ein anderes Beispiel:
$(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'nicht gut genug EDIT: Egal, ich habe dein 2. Beispiel gesehen.
e.originalEvent.wheelDelta || e.originalEvent.detail?
wheelEreignis.
window.addEventListener("scroll",function(){
window.lastScrollTime = new Date().getTime()
});
function is_scrolling() {
return window.lastScrollTime && new Date().getTime() < window.lastScrollTime + 500
}
Ändern Sie die 500 in die Anzahl der Millisekunden nach dem letzten Bildlaufereignis, bei dem Sie den Benutzer als "nicht mehr scrollend" betrachten.
( addEventListenerist besser als onScrollweil der erstere gut mit jedem anderen Code koexistieren kann, der verwendet onScroll.)
Sie können ein Intervall einrichten, um zu überprüfen, ob der Benutzer gescrollt hat, und dann etwas entsprechend zu tun.
Aus dem großen John Resig in seinem Artikel entlehnt .
Beispiel:
let didScroll = false;
window.onscroll = () => didScroll = true;
setInterval(() => {
if ( didScroll ) {
didScroll = false;
console.log('Someone scrolled me!')
}
}, 250);
if(scolling). Istif(window.onscroll)das gleich