Size: a a a

Elm Lang сообщество разработчиков

2020 October 20

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
(ну я так это вижу, сам не делал)
источник

I

Igor in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
погодь, ты про скролл или селекшн?
Про скрол.
Просто интересно событие на каждый пиксель тригерится?
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Вроде нет
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
На некий "шаг прокрутки"
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Который браузер определяет
источник

I

Igor in Elm Lang сообщество разработчиков
Я просто так делал (обновлял модель на каждый пиксель) и там были жутки лаги/дергание (хотя это было в Elmish с React))

Пришлось делать отдельный компонент-обертку, который событие кидал только когда скрол остановится.
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Кмк, проще просто не трогать скролл, пока состав элементов не меняется
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Всё таки скроллбокс — нативный контрол тулкита, на котором браузер написан. Даже если вы стили натянете
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Как уж тулкит решит его двигать — его дело. Хотите контроля — либо сами реализуйте прокрутку, либо делайте так, чтобы либо не было прокрутки вообще, либо прокрутка менялась только по выходу курсора из области видимости (сложна)
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
(фига, я теоретик UX!)
источник

I

Igor in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
Как уж тулкит решит его двигать — его дело. Хотите контроля — либо сами реализуйте прокрутку, либо делайте так, чтобы либо не было прокрутки вообще, либо прокрутка менялась только по выходу курсора из области видимости (сложна)
Там кстати был не viewport страницы, а скрол virtualized-list который внутренние ноды создает налету (ну что бы 1000 постов с котиками тянул)

В общем вывод: НЕ пытайтесь сохранять скрол на каждый пиксель, одновременно выставляя его. Лучше это делать когда скрол уже остановился.
источник

MB

Mikhail Bortnyk in Elm Lang сообщество разработчиков
Denis Krivosheev
Массив это радикс дерево с бранч фактором 32
я же правильно помню, что Elm по факту имплементирует массивы как деревья из js array константного количества детей на ноду, 32 как раз?
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Igor
Про скрол.
Просто интересно событие на каждый пиксель тригерится?
В элм ивенты уже сдебоунсены
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Mikhail Bortnyk
я же правильно помню, что Elm по факту имплементирует массивы как деревья из js array константного количества детей на ноду, 32 как раз?
Вроде того... только 32 это не константное а максимальное... ну и деревья балансированые
источник

MB

Mikhail Bortnyk in Elm Lang сообщество разработчиков
ну меня больше подход интересовал, детали имплементации я в elm/core гляну )
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Думаю виртуализованый список в элм сделать это люто упороться надо если без вэб компонентов... без вискаря точно не выйдет
источник

MB

Mikhail Bortnyk in Elm Lang сообщество разработчиков
ну без портов точно не обойдётся
источник

I

Igor in Elm Lang сообщество разработчиков
Так стоп, я думал вот оно готовое https://package.elm-lang.org/packages/FabienHenon/elm-infinite-list-view/
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Видимо кто-то уже упоролся))
источник

I

Igor in Elm Lang сообщество разработчиков
Не знаю насколько оно универсально, но написано на чистом elm без портов
источник