Comments (3)
Similar behavior applies when doing anything else to an element that would make it a "containing block" (like adding a transform). The matter is that when inside a dialog
element, it should use the html root element for position, since the dialog resets position .
...meanwhile, a possible workaround is to make the dialog
a containing element by adding a useless transform style
dialog { transform: translate(0); }
(i'm not terribly aware of other consequences of forcing containing elements though.)
edit: *applies when opened with showModal()
, but not show()
.
from floating-ui.
Similar behavior applies when doing anything else to an element that would make it a "containing block" (like adding a transform). The matter is that when inside a
dialog
element, it should use the html root element for position, since the dialog resets position.
Probably need to be careful of the non-modal dialog then. I didn't look into it too deeply, but the HTML spec for dialog
also supports the .open()
function, which is non-top level mode for that html element. So perhaps the relevant check needs to be if the element is top level or not
from floating-ui.
As @scott-m-sarsfield pointed out, the logic is to detect if something is a containing block is missing an isTopLayer(element)
check while traversing. This a simple change and appears to fix the issue. I'll make a PR shortly
from floating-ui.
Related Issues (20)
- Popover element position not updating when the body is scrollable HOT 1
- [react] userHover in mobile stuck open after clicking floater HOT 2
- onClick doesn't work inside a React component within PopoverTrigger HOT 4
- isRTL function at floating-ui.dom.mjs:433:26 might cause forced reflow HOT 1
- TypeError: Cannot convert undefined or null to object after updating @floating-ui/utils to 0.2.6 HOT 2
- Root menu focus moves when press the `Home` or `End` keys in an opened submenus.(using virtual nested dropdownMenu) HOT 2
- [React-Native Android] : On switching between two spotlight targets, the floating dialog is initially rendered in the position of previous target HOT 2
- useClick does not bind event listeners to external reference, while useHover does HOT 3
- While the `modal={true}` & `initialFocus={-1}` - the `Tab` focuses on the last tabbable element within the `floating` HOT 1
- `size` with `shift` doesn't fill the viewport when resizing HOT 2
- `blockPointerEvents` applies stray `pointer-events: none` to other documents/`<body>` HOT 2
- flip with `boundary` gets clipped when it can't fit within `rootBoundary` HOT 5
- isPositioned only becomes true after setting the open option to false HOT 8
- `useHover` + `useFocus` not working well together HOT 1
- `useHover` + `useFocus` not working well together HOT 2
- `size` placed before `shift` has inconsistent non-zero size when shifting HOT 2
- FloatingFocusManager incorrect focus restore when the the reference unmounts before the floating element is closed HOT 1
- After closing the submenu, pressing the `Enter` key selects an item within the submenu.(using virtual nested dropdownMenu) HOT 1
- Why is there a calculation error, a content calculation error, when the width on the right side is insufficient. HOT 3
- The location of the popup is off if body-element is zoomed HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from floating-ui.