Horizontal scroll gdy robimy dnd elementu poza "widziany" viewport kontenera

0

Czesc robie aplikacje w ktorej mam dnd i kontener w ktorym elemente sa w flexbox z direction row bez wrap czyli kontener mozna scrollowac w poziomie.
Problem jest taki ze jesli chcemy przeniesc elemento z poczatku listy do listy ktora jest poza "viewport" kontenera chcialbym zeby gdy element ktory przeciagamy dojdzie do konca kontera - jakis tam margin wtedy kontener bedzie sam scrollowac w poziomie.

Czy ktos z was zna taka biblioteke? Sprobowalem https://github.com/hollowdoor/dom_autoscroller ale troche laguje gdy przeciagamy elementy (bez niej wszystko jest ok)

Uzywam swimlane/ngx-dnd bo byc moze bede mial nested list a w material cdk dnd ma z tym problemy.

Znalazlem ta biblioteke https://kutlugsahin.github.io/ngx-smooth-dnd/ ktora to implementuje na szybko sprawdzilem czy moznaby bylo jakos wyciagnac ta funkcjonalnosc ale jest ona napisana z mysla o tej bibliotece i ciezko bedzie

Dzieki za pomoc

0

OK poki co rozwiazalem za pomoca

this._zone.runOutsideAngular(() => {
  // initialize autoScroll
});

I przynamniej za kazdym eventem autoScroll'a change detection nie zostaje wywolywane i jest o wiele lepiej, ale jesli ktos zna lepsze rozwiazanie to prosze pisac.

0

Czy chodzi po porostu o przewinięcie kontenera za pomocą JS?

elmnt.scrollLeft = 200;

Chyba, że źle rozumiem, na czym polega opisywany problem.

0

Tak ale tylko jesli przeciagany element dojdzie do konca kontenera to wtedy kontener powinien scrollowac zeby mozna bylo upiscic przeciagany element do innej listy nie widocznej bez scrolla

1

@Freja Draco: chodzi o przewinięcie kontenera za pomocą JS, ale nie statycznie, tylko dynamicznie, podczas przesuwania przenoszenia tego elementu za pomocą drag-and-drop.

1 użytkowników online, w tym zalogowanych: 0, gości: 1