smooth scroll
Запись от mr_dramm размещена 14.03.2023 в 12:14
Показов 2622
Комментарии 15
Метки css, html, javascript
|
Несложный smooth scroll css анимация лучше работает чем js Пример на css transform горизонтальный codepen Кликните здесь для просмотра всего текста
вертикальный codepen Кликните здесь для просмотра всего текста
Пример на requestAnimationFrame работает хуже чем css анимация codepen github gist Кликните здесь для просмотра всего текста
| |||||||||||||||
Метки css, html, javascript
Размещено в ui
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 15
Комментарии
-
Запись от Алексей1153 размещена 14.03.2023 в 12:37
-
Спасибо Алексей, очень хороший вопрос, я постараюсь в ближайшее время продемонстрировать свой редактор markdown (Этот редактор используется у меня на сайте для написания статей), в нем будет использоваться плавная прокрутка для того чтобы синхронизировать markdown текст и результат в html без прыжков, так как есть небольшая разница в тексте написанном в markdown и html, и также хочу сделать чтобы когда пользователь ставил курсор на редактируемый блок этот блок тоже был по центру, и чтобы его сделать по центру будет использоваться плавная прокрутка. Еще раз спасибо за вопрос =)Запись от mr_dramm размещена 14.03.2023 в 12:51
-
Запись от mr_dramm размещена 14.03.2023 в 13:06
-
Запись от Алексей1153 размещена 14.03.2023 в 13:24
-
Запись от mr_dramm размещена 14.03.2023 в 15:59
-
Да, transform лучше position в плане производительности
[url]https://developer.mozilla.org/ru/docs/Web/Performance/Animation_performance_and_frame_rate[/url]
[QUOTE]Browsers are optimized to handle CSS animations, and handle animating properties that do not trigger a reflow (and therefore also a repaint) very well. To improve performance, the node being animated can be moved off the main thread and onto the GPU. Properties that will lead to compositing include 3D transforms (transform: translateZ(), rotate3d(), etc.), animating transform and opacity, position: fixed, will-change, and filter. Some elements, including <video>, <canvas> and <iframe>, are also on their own layer. When an element is promoted as a layer, also known as composited, animating transform properties is done in the GPU, resulting in improved performance, especially on mobile.[/QUOTE]
[url]https://developer.mozilla.org/en-US/docs/Learn/Performance/CSS[/url]
Демка, кстати, фее... раздражает такое поведение скролла. :pЗапись от KingdaKa размещена 15.03.2023 в 06:59
-
Запись от mr_dramm размещена 15.03.2023 в 08:00
-
Ну, если это не ирония, то мне тоже не понравилось поведение скроллируемого текста в примере https://codepen.io/den4ik_rus/pen/yLxKoea
Ощущение такое, что текст перед остановкой "подпрыгивает". Как-то не привычно и, собственно, перемотка - это не та операция, которая должна переключать внимание на себя.Запись от sqltd1 размещена 15.03.2023 в 14:44
-
Запись от Алексей1153 размещена 15.03.2023 в 15:12
-
> перед остановкой "подпрыгивает"
да это возможно решить уменьшая скорось при приближении к концу прокрутки и делая интервалы расстояний между срабатыванием функции step меньше например, сейчас они постоянные. Чем больше высота блока текста тем верочтнее что такие скачки будут. Можно добавить Easing functions для окончания прокручивания которая будет влиять на переменную progress тем самым меняя проходимые расстояния по Y в конце.
Сейчас чтобы немного уменьшить скачки можно поменять условие
наJavaScript 1
if (state.progress < 0.98) {
> раздражает это из-за несогласованности между движением колеса и положением текстаJavaScript 1
if (state.progress < 0.9999) {
немного подробностей не помешает, в какой момент в начале движения или в конце?
Большое спасибо за отзывы, ждите обновления!Запись от mr_dramm размещена 15.03.2023 в 16:00
-
Запись от Алексей1153 размещена 15.03.2023 в 16:02
-
Запись от mr_dramm размещена 19.03.2023 в 10:39
-
впечатления от https://codepen.io/den4ik_rus/pen/yLxKoea
эффект подпрыгивания устранен
все более или менее нормально, но, на нажатия кнопок вверх\вниз\pgUp\pgDn начинает реагировать только после выполнения goto section.
При захвате скроллбара и попытке скроллить, страница становится "инерционной" и останавливается не в момент остановки скроллбара, а позже. Это противоречит ожиданиям (по кр.мере моим - я перематываю что-то, увидел интересный фрагмент и остановился, а он уехал куда-то).
удачи.Запись от sqltd1 размещена 26.03.2023 в 07:50
-
Я не понял в чем прикол. Но лучше обычного [B]привычного[/B] скролла ничего нет.
Лучшее - враг хорошего.Запись от KingdaKa размещена 27.03.2023 в 02:41
-
добавил пример на css,
css анимация лучше работает чем js
Запись от mr_dramm размещена 30.07.2023 в 17:23

О неё нужно максимально избавляться


