fix: автоскролл для новых сотрудников теперь инициализируется после рендеринга

- Перенесена инициализация автоскролла внутрь newEmployeesScroller
- Динамический импорт autoScrollerHandler после создания DOM
- Добавлена задержка 100мс для гарантии обновления DOM
- Убран преждевременный вызов initAutoScroller из шаблона
- Автоскролл запускается только когда элементы уже отрендерены
This commit is contained in:
admin i 2025-12-05 11:00:04 +03:00
parent c9a440c3d3
commit b964f89c36
2 changed files with 24 additions and 7 deletions

View File

@ -62,6 +62,29 @@ export class NewEmployeesScroller {
const scrollerHtml = this.createScrollerHtml(employees);
this.container.innerHTML = scrollerHtml;
this.container.style.display = 'block';
// Инициализируем автоскролл после рендеринга
this.initAutoScroll();
}
/**
* Инициализация автоскролла для созданного скроллера
*/
async initAutoScroll() {
try {
// Динамический импорт модуля автоскролла
const { initAutoScroller } = await import('/static/js/components/autoScrollerHandler.js');
// Небольшая задержка для гарантии, что DOM обновился
setTimeout(() => {
initAutoScroller({
selector: '.js-join-scroller',
speed: 0.5
});
}, 100);
} catch (error) {
console.warn('Failed to initialize auto-scroller:', error);
}
}
/**

View File

@ -49,18 +49,12 @@
<script src="{% static 'js/components/feedComments.js' %}"></script>
<script type="module">
import { initAutoScroller } from "{% static 'js/components/autoScrollerHandler.js' %}";
import { initCreatePostModal } from "{% static 'js/components/createPostModal.js' %}";
import { FeedList } from '{% static "js/components/feedList.js" %}';
import { ListFilter, createDataAttrMatcher } from '{% static "js/components/listFilter.js" %}';
import { initNewEmployeesScroller } from '{% static "js/components/newEmployeesScroller.js" %}';
document.addEventListener('DOMContentLoaded', () => {
initAutoScroller({
selector: '.js-join-scroller',
speed: 0.5 // пикселей за кадр (примерно 30px/сек)
});
// Инициализация модала создания публикации
const createModal = initCreatePostModal({
apiUrl: '{% url "api:v1:posts-list" %}'
@ -73,7 +67,7 @@
params: { type: 'company' }
});
// 🆕 Загрузка новых сотрудников через AJAX
// 🆕 Загрузка новых сотрудников через AJAX (автоскролл инициализируется внутри)
initNewEmployeesScroller('newEmployeesContainer');
// Обновляем ленту после создания поста