-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] The order of the grids can break, when the page is loading on small screen, with Responsive Layouts #2584
Comments
Also experiencing this problem in my app |
Maybe there is a bug in |
Have the same problem |
ok, is someone wlling to donate to get this looked into ? I don't have the bandwidth to look at everything these days... |
I think I might have uncovered some related issue, when initializing with markup. I created a simple example. https://jsfiddle.net/q6baf31k/13/ When I add items as children during initialization, it seems to work properly both when resizing down to 1 column, and when rendering initially as 1 column. In both cases the items are in order 0 to 4. However in our use case we render markup and initialize GridStack on existing HTML markup. As I resize down to 1 column it will order correctly from 0 to 4. But when running the example small as 1 column, it will order as 2, 4, 3, 1, 0. sortNodes is called as each node is added and moveNode is called, then this.nodes still seems to be in the correct order. Not until _packNodes is called during batchUpdate is when the nodes are getting in the wrong order. |
FWIW: I applied the change suggestion of @NicolasCoelho, but that did not resolve my issue described above. |
From my testing, it's happening only when you use addWidget() function with a foreach loop over your items to add your items, if you use children property in init() function or load() function to load your items, you won't have any problem. |
Subject of the issue
What the title says.
The order of the grids can break, when the page is loading on small screen, with Responsive Layouts.
Your environment
version of gridstack.js - 10.0.1
which browser/OS - Chrome/MacOS
Steps to reproduce
https://gridstackjs.com/demo/responsive_break.html
In the Responsive demos (either by column size or using breakpoints) if you reload the page when only one column should be displayed, than grid nr. 5 is placed before grid nr. 4. (But if you start from a bigger resolution, and zoom to the smallest, the order remains fine).
Expected behavior
The order should remain 1,2,3,4,5.
The bug is even more visible, if you change the items array a bit.
let items = [
{x:0,y:0,w:1,h:1},
{x:1,y:0,w:1,h:1},
{x:2,y:0,w:1,h:2},
{x:9,y:0,w:1,h:2},
{x:0,y:1,w:1,h:1},
{x:1,y:1,w:1,h:1},
{x:1,y:2,w:2,h:2}
];
The text was updated successfully, but these errors were encountered: