I am dynamically adding DOM elements during initialization using JavaScript.
All the elements are correctly added to the DOM (see developer tools screenshot — all tags are inside the container).
However, when I slide to the next page using transform: translateX(), the elements are not visible, even though they are definitely in the DOM and have correct size (see the second screenshot).
What could be causing this issue?
What I’ve checked so far:
✅ The images exist and paths are correct.
✅ HTML elements are properly added inside .page-grid containers.
✅ The first page (data-page=”0″) displays perfectly fine.
✅ It’s not a CSS display: none issue.
✅ It’s not an opacity problem.
✅ The container sizes are correct (checked with developer tools).
But still, the second page (data-page=”1″) does not render images when sliding.
html
<div class="page-slider">
<div class="page-grid" data-page="0"></div>
<div class="page-grid" data-page="1"></div>
</div>
css
.page-slider {
display: flex;
width: 100%;
overflow: hidden;
transition: transform 0.4s ease;
}
.page-grid {
min-width: 100%;
display: grid;
grid-template-columns: repeat(3, 1fr);
}
js
const pages = [
{ prefix: 'assets/emoji_', count: 18 },
{ prefix: 'assets/effect_', count: 18 }
];
function initializePages() {
const grids = document.querySelectorAll('.page-grid');
grids.forEach((grid, index) => {
const page = pages[index];
for (let i = 1; i <= page.count; i++) {
const img = document.createElement('img');
img.src = `${page.prefix}${String(i).padStart(2, '0')}.png`;
img.alt = `${page.prefix}${i}`;
grid.appendChild(img);
}
});
}
function updateSlider() {
const slider = document.querySelector('.page-slider');
slider.style.transform = `translateX(-100%)`; // simulate sliding to page 1
}
initializePages();
updateSlider();
✅ Page 0 (data-page=”0″) — images visible

❌ Page 1 (data-page=”1″) — images not visible, but DOM elements exist

Thank you in advance for your help!