поведение прокрутки | CSS-трюки — CSS-трюки
DigitalOcean предоставляет облачные продукты для каждого этапа вашего путешествия. Начните с бесплатного кредита в размере 200 долларов США!
Свойство scroll-behavior
в CSS позволяет нам определить, перемещается ли место прокрутки браузера в новое место или плавно анимируется переход, когда пользователь щелкает ссылку, которая нацелена на закрепленную позицию в поле прокрутки.
HTML { поведение прокрутки: гладкое; }
Подробное объяснение
Подожди, подожди, о чем мы говорим? Это элемент с содержимым, выходящим за его границы.
См. Поле прокрутки пера от CSS-Tricks (@css-tricks) на CodePen.
Обратите внимание на то, что поле в приведенной выше демонстрации имеет фиксированную высоту 200 пикселей
? Любой контент, который превышает эту высоту, находится за пределами поля, и мы добавили overflow-y: scroll
, чтобы сделать этот дополнительный контент доступным с помощью вертикальной прокрутки. Это то, что мы подразумеваем под прокруткой.
Теперь предположим, что мы добавим навигацию в верхнюю часть окна, где каждая ссылка нацелена на три раздела содержимого:
См. Поле прокрутки пера с навигацией от CSS-Tricks (@css-tricks) на CodePen.
Каждая ссылка ведет пользователя непосредственно к различным разделам контента внутри поля прокрутки. По умолчанию этот переход между ними является резким скачком.
Переход между содержимым по умолчанию резкий и внезапный. Такой прыжок может вызвать раздражение. Вот где поведение прокрутки 9Появляется 0006 и позволяет установить плавный переход с прокруткой. Такого рода вещи использовались для причудливого Javascript, но
scroll-behavior
даст нам возможность сделать это изначально в CSS, как только поддержка браузера улучшится.
Переход между содержимым анимируется плавным переходом. Синтаксис
.модуль {
поведение прокрутки: [авто | гладкий ];
}
Values
Свойство scroll-behavior
принимает два значения, которые по существу включают и выключают функцию плавной прокрутки.
-
авто
(по умолчанию): Это значение разрешает резкий переход между элементами в поле прокрутки. -
smooth
: В соответствии со своим названием, это значение представляет собой плавный анимированный переход между элементами в поле прокрутки.
Демонстрация
Следующая демонстрация будет работать только в Chrome 61+, Firefox 36+ и Opera 48+ на момент написания этой статьи.
См. Поле прокрутки пера с `scroll-behavior` от CSS-Tricks (@css-tricks) на CodePen.
Browser Support
Desktop
Chrome Firefox IE Edge Safari 61 36 No 79 15.4
Мобильный телефон/планшет
Android Chrome Android Firefox Android iOS Safari 110 110 109 15.4
Дополнительная информация
- Модуль просмотра CSSOM: проект спецификации, включая свойство CSS. Текущий черновик включает в себя рекомендацию переместить поведение прокрутки
в другую спецификацию, так что будет интересно посмотреть, где это приземлится.