PageUp/PageDown перемещают содержимое экрана на одну страницу вверх или вниз.

Как можно избежать проблемы с прокруткой страницы на Хабре, которая происходит после удаления альтернативы под названием berserk-mode, так чтобы использование клавиш PgUp/PgDn приводило к прокрутке страницы на 1 экран, а не на 1 экран + 1 строку, в отличие от других сайтов? Какие существуют методы для решения этой проблемы с использованием кастомных скриптов или других более простых способов?
  • 5 января 2024 г. 11:58
Ответы на вопрос 2
Проблема, о которой вы говорите, обычно связана с тем, что при нажатии на клавиши PageUp или PageDown браузер прокручивает страницу на одну "экранную" высоту плюс несколько дополнительных строк для ориентира. Это стандартное поведение для большинства браузеров и предполагает, что пользователь не потеряет контекст чтения из виду.

Однако, если вы хотите изменить это поведение на сайте Хабр (или любом другом сайте), используя пользовательскую прокрутку страниц, можете следовать одному из нижеприведенных методов. Обратите внимание, что для этого вам возможно потребуются базовые знания JavaScript и взаимодействия с веб-страницами.

### Использование пользовательских пользовательских скриптов (UserScripts):

1. **Установите менеджер пользовательских скриптов** в вашем браузере (например, Tampermonkey, Violentmonkey или Greasemonkey).
2. **Создайте новый пользовательский скрипт** для сайта Хабр, который будет переопределять стандартное поведение клавиш PageUp/PageDown.

Пример такого скрипта может выглядеть следующим образом:

```javascript
// ==UserScript==
// @name         Custom Page Scroll
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Custom scroll behavior for PageUp and PageDown
// @author       Your Name
// @match        https://habr.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    window.addEventListener('keydown', function(e) {
        if (e.code === "PageDown" || e.code === "PageUp") {
            e.preventDefault();
            const deltaY = window.innerHeight * (e.code === "PageDown" ? 1 : -1);
            window.scrollBy({ top: deltaY, behavior: 'smooth' });
        }
    });
})();
```

Этот скрипт перехватывает события нажатия клавиш PageUp и PageDown, предотвращает стандартное действие, и заменяет его на прокрутку, эквивалентную высоте окна просмотра.

### Использование расширений браузера:

Если вы не хотите писать пользовательский скрипт, вы можете использовать существующее расширение браузера, которое позволяет настраивать клавиши прокрутки. Найдите и установите подходящее расширение, которое позволяет изменять поведение прокрутки (например, SmoothScroll или ScrollAnywhere) и настройте его под свои потребности.

### Альтернативные комбинации клавиш:

Также вы можете использовать альтернативные клавиши для прокрутки страницы:
- `Space` для прокрутки страницы вниз;
- `Shift` + `Space` для прокрутки страницы вверх.

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

Обратите внимание, что внесение изменений в стандартное поведение клавиш может повлиять на ваш опыт работы с другими сайтами, поэтому будьте осторожны при использовании таких модификаций. И проверяйте любой скри
У меня на этот счет два мнения - один теория заговора, 'сделать плохо' почему то с маркетинговой точки зрения - хорошо (грубо говоря у народа подгорает и они об этом всем рассказывают), ну и вторая - значительное понижение бюджетов на разработчиков => увольнение тех кто это делал => новые за дешево адекватно поддерживать не могут, какой там полезные вещи делать и исправлять некритичные (для бизнеса) баги, тут бы с задачами бизнеса разобраться. 

Обе эти причины хорошо накладываются вообще на весь IT сектор.

Грустно!

p.s. как решить это красиво, не знаю, нужно разобраться что именно в css там намудрили и почему размер экрана считается больше.
Похожие вопросы