Как сделать так, чтобы браузер прокручивался в фиксированном положении? - PullRequest
0 голосов
/ 28 декабря 2011

Как я могу предотвратить прокрутку браузера или как сделать так, чтобы браузер постоянно прокручивал до фиксированного положения?

Я работаю над библиотекой для браузера Nintendo 3DS. Я сделал страницу идеально вписывающейся в браузер, но стрелка вверх заставляет ее прокручиваться, потому что нижний экран - единственное окно, распознаваемое как видимая область.

Я хочу сделать так, чтобы div #bottomScreen был единственным на нижнем экране, а отключение прокрутки - единственное, что, я думаю, сработало бы.

Я понял, как прокрутить его до указанной позиции с помощью

document.body.scrollTop = 220;

Как я могу заставить его постоянно переходить в эту позицию?

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

Какой-нибудь совет о том, как обеспечить его соблюдение?

Ответы [ 4 ]

1 голос
/ 28 декабря 2011

Должно работать даже после загрузки страницы.Вот код, хотя я не уверен, какова цель кода, это может раздражать пользователя.

setInterval( function(){ document.body.scrollTop = 200 }, 500 ); // set your time
1 голос
/ 28 декабря 2011

Более элегантным решением было бы отключить прокрутку при вызове этого метода (для прокрутки до положения 220 сверху или как угодно) и повторно включить его всякий раз, когда пользователь предпринял соответствующие действия и т. Д ...Пример jQuery:

$('body').css('overflow', 'hidden'); // removes scrollbars entirely
$('body').css('overflow', 'auto'); // re-enable scrolling

В противном случае используйте setInterval () с очень коротким интервалом, например 10 мс, для многократного запуска функции прокрутки.Если вы собираетесь это сделать, было бы разумно добавить некоторую логику, чтобы увидеть, прокручивается ли окно уже приблизительно до правильной позиции (с учетом +/- 10 пикселей или что-то в этом роде), так что это не слишком раздражает пользователя.1004 *

0 голосов
/ 28 декабря 2011

Вы можете добавить прослушиватель событий для события прокрутки, а затем установить позицию.

0 голосов
/ 28 декабря 2011

Лучший способ, который я видел на некоторых сайтах (например, в твиттере или в фейсбуке, когда изображение появляется), это установить свойство переполнения скрытым в элементе body.Это предотвращает прокрутку, поэтому все, о чем вам нужно беспокоиться, это позиция содержимого, когда вы это делаете.

Полагаю, вам нужно будет обернуть содержимое в какой-то элемент контейнера, а когда вы изменяете переполнение элемента body, вы также устанавливаете y-координату контейнера, чтобы показать конкретную область страницыпосмотрел.

Это лучшее, что я видел для достижения этого эффекта, потому что для этого не нужны таймеры и т. д.

...