it-roy-ru.com

Jquery Scroll Один пиксель от того места, где пользователь находится на экране

хорошо, вот сценарий. У меня есть одностраничный веб-сайт с майскими разделами с использованием якорных ссылок. Когда пользователь находится на дополнительном макете (странице), и когда он нажимает, чтобы снова перейти в раздел на главной странице, по какой-то причине графика не загружается должным образом, пока не произойдет прокрутка. Все, что я хочу сделать, это когда бы ни загружался основной макет, независимо от того, к какой привязке он загружается, просто прокрутите страницу вверх или вниз на 1 пиксель.

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

Я пробовал выше, но этот код просто берет пользователя 100 пикселей сверху. Я не хочу, чтобы это произошло, то есть не сверху, а с того места, где пользователь находится на экране.

17
Muhammed Bhikha

используйте jquery scrollTop (), чтобы установить позицию прокрутки в текущую позицию прокрутки + 1:

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

Чистое решение JavaScript без издержек jQuery:

window.scrollY += 100;

С помощью jQuery (и необычной анимации):

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

У меня похожая проблема. Я хочу прокрутить вниз на 1 пиксель, а затем на 1 пиксель вверх, так что, надеюсь, пользователь вообще ничего не заметит. Я сделал это:

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

ОБНОВЛЕНИЕ: Но я мог бы в конечном итоге использовать JQuery вместо этого. Все, что я хочу, это событие прокрутки, и я могу сделать это с:

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