-
Notifications
You must be signed in to change notification settings - Fork 0
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
Fix vertical position of modal when ".reveal-modal" has % "top" property #1
base: master
Are you sure you want to change the base?
Conversation
An absolute-positioned element with % "top" property that is hidden through "display: none;" does not evaluate to the same value as a visible one for the following JS: window.getComputedStyle(element).top The computed "top" value for the hidden element is still the % value, while it is the computed px value if the element is visible or when using "visibility: hidden;". This is demonstrated in the following Plunker: http://run.plnkr.co/preview/cjkut64np00072y6ccj3tmqem/ $modalStack.open expects the expression above to return the px value, so a "10%" value gets treated as "10px". This is not the desired behavior, and a big limitation now that people use a big range of screen sizes. The faux modal is temporarily inserted with "z-index: -1" (JS), "display: none" (CSS), and "visibility: hidden;" (CSS). As a workaround, this commit assigns "display: block" (JS) to the faux modal.
There is a bug in the handling of % values for the "top" CSS property of the modals. See details here: openfoodfoundation/angular-foundation#1 A PR to the original repository has also been submitted, but the project doesn't seem to be active anymore: yalabot/angular-foundation#319 And to another fork of the repository: cwadrupldijjit/angular-foundation#1 The bug was causing the 10% "top" CSS property for the modal to be treated as 10px.
I actually hadn't been planning on maintaining it too much, but it was just those two things that was keeping it from being able to be used with newer versions of AngularJS and jQuery. I'm not altogether opposed to maintaining it if it's needed. From the look of it, you may already have something similar up on the main repo with it, and people have responded. I'm assuming that you'd roll with that if everything works out fine, though. Let me know what you plan on doing so that I can respond accordingly. |
There is a bug in the handling of % values for the "top" CSS property of the modals. See details here: openfoodfoundation/angular-foundation#1 A PR to the original repository has also been submitted, but the project doesn't seem to be active anymore: yalabot/angular-foundation#319 And to another fork of the repository: cwadrupldijjit/angular-foundation#1 The bug was causing the 10% "top" CSS property for the modal to be treated as 10px.
There is a bug in the handling of % values for the "top" CSS property of the modals. See details here: openfoodfoundation/angular-foundation#1 A PR to the original repository has also been submitted, but the project doesn't seem to be active anymore: yalabot/angular-foundation#319 And to another fork of the repository: cwadrupldijjit/angular-foundation#1 The bug was causing the 10% "top" CSS property for the modal to be treated as 10px.
Fix vertical position of modal when
.reveal-modal
has % "top" property(I actually submitted yalabot#319 too, but I'm not sure if the repository is still being maintained. @cwadrupldijjit Do you plan to maintain this fork? We would love to use it if yes.)
Description
Currently, if the "reveal-modal" CSS class is assigned an n% "top" CSS property, the modal would be positioned n px from the top of the viewport.
The modal uses the following JS:
The library inserts an invisible faux modal, computes its top position using above, removes the faux modal, and then inserts the real modal which applies the top position computed earlier.
However, an absolute-positioned element with % "top" property that is hidden through
display: none;
does not evaluate the JS to the same value as when it is visible. The computed "top" value for the hidden element is still the % value, while it is the computed px value if the element is visible or when usingvisibility: hidden
. This is demonstrated in this Plunker.$modalStack.open
expects the expression above to return the px value, so a10%
value gets treated as10px
. This is not the desired behavior, and a big limitation now that people use a big range of screen sizes.The faux modal is temporarily inserted with
z-index: -1
(JS),display: none
(CSS), andvisibility: hidden
(CSS).As a workaround, this commit applies
display: block
(JS) to the faux modal.Release notes
Changelog Category: Bug Fixes