Skip to content

Managing z-index/node positions on ds-selector areas #125

Description

@owenfar

Describe the bug
In v2, all ds-selector areas have been moved into the main body node, and we're keeping states for multiple specific dragSelect areas to hide & show the right one accordingly. The problem now is managing z-index. Since all ds-selector areas are under one element at the top of the node tree, it's impossible to keep a "window" above another dragSelect area, as we do not have control of the z-index anymore. One example would be a "window" above a "desktop".. the desktop ds-selector would go above the whole window as it is now:

154266531-ee847b34-97d9-46ee-af3e-9ca1bd2829e2

To Reproduce
Create multiple dragSelect areas were one overlaps the other.

See live example: https://codepen.io/owenfar/pen/ZEooKOX

Expected behavior
The dragSelect should be positioned in the areas themselves, this way the z-index is taken care of automatically. I know that this was part of an update to allow/fix/enhance a feature such as the one described in #63. So I know that it's a complicated aspect and a big part of the library itself.

There are some things I imagine would be the perfect scenario for the ds-selector:

  • That we have only one ds-selector globally, and it is moved according to the current clicked position if a ds-area exists - I know this must create other complexities, it's more for the sake of less-is-better.
  • Re-accomplish issue Drag select autoscroll keeps scrolling past area height #63 by determining the max-height, max-width of the current area and stop the scrolling process once the max scroll position is reached - My best guess regarding how we would tackle the selector going outside the window would be to follow the cursor on the whole viewport, instead of just the specific area? (setting overflow:hidden state can be applied to the parent element by default or left up to the user).

Thank you!

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions