web-dev-qa-db-fra.com

Jquery Scroll Un pixel d'où que l'utilisateur soit à l'écran

ok heres le scénario. J'ai un site Web d'une page avec des sections de mai en utilisant des liens d'ancrage. Lorsque l'utilisateur se trouve sur une mise en page secondaire (page) et lorsqu'il clique dessus pour revenir à une section de la page principale, les graphiques ne se chargent pas correctement jusqu'à ce qu'un défilement se produise. Tout ce que je veux, c’est que chaque fois que la mise en page principale est chargée, quelle que soit l’ancre à laquelle elle est chargée, faites simplement défiler la page vers le haut ou le bas de 1 pixel.

 $.scrollTo({ top: '+=100px', left: '+=0px' }, 800);

J'ai essayé ce qui précède, mais ce code prend simplement l'utilisateur 100 pixels du haut. Je ne veux pas que cela se produise, c’est-à-dire non pas du haut, mais de l’endroit où l’utilisateur est à l’écran.

17
Muhammed Bhikha

utilisez jquery scrollTop () pour définir la position de défilement sur la position de défilement actuelle + 1:

$(window).scrollTop($(window).scrollTop()+1);
32
Justin McDonald

Une solution JavaScript pure sans la surcharge jQuery:

window.scrollY += 100;

Avec jQuery (et une animation de fantaisie):

var cur = $(window).scrollTop();
$(window).animate({scrollTop: cur + 100});
4
Chris

J'ai le même problème. Je souhaite faire défiler 1 pixel, puis 1 pixel vers le haut, afin que l'utilisateur ne remarque rien du tout. J'ai fait ça:

window.scrollBy(0, 1); // 0 pixels horizontal and 1 pixel down
window.scrollBy(0, -1); // 0 pixels horizontal and 1 pixel up

UPDATE: Mais je pourrais utiliser plutôt JQuery. Tout ce que je veux, c'est l'événement de défilement à déclencher et je peux le faire avec:

$(window).scroll();
2
$("html, body").animate({scrollTop: ($(window).scrollTop() + 1)});
1
Laura Chesches