Comments (6)
Hi,
The resize detector only detects size changes, and does not detect visibility. However if an element is invisible (display:none
for instance), and then changes, the detector will emit resize events as soon as the element gets visible again.
I hope this clarifies some things.
PS. I really recommend using the scroll approach, as it is far superior. I am going to deprecate the object approach soon :)
from element-resize-detector.
@wnr Thank you! I created a MutationObserver to detect the css display change. Anyway, thanks for this awesome code!!
from element-resize-detector.
@wnr I'm encountering this issue when using the scroll
strategy. When display: none
is removed from the observed element, I see that
startanimation triggered.
Element rendered.
is printed to the console, however no resize event is emitted.
I've created a Plunker app to reproduce.
Does this look like a bug?
from element-resize-detector.
Hi, thank you for the plunkr - it helps a lot. It seems to behave as expected for me. Could you describe a bit more in detail which steps you are doing, the expected behaviour and the actual behaviour?
from element-resize-detector.
I've updated the Plunk to show a bit more output when you click the Show/Hide button.
When you click the Show/Hide button, a display: none
style is either added or removed on the "chart" div. When the div is hidden via display: none
it has a height and width of 0
. When the display: none
style is removed (and the element is now visible), it has a size of approx. 600 x 100
. I would have expected that because the element has resized, that the resize listener callback would be called, resulting in "Resized: 600x100" to be printed to the console. Right now I'm seeing that the resize listener is only called when the element is first rendered.
from element-resize-detector.
Ah I understand. Actually, it is by design that it works like this. The size of the div is undefined while it is unrendered (even though some browsers report it as 0), so it remembers the last size it had and checks if the size when it gets rendered is the same or not. Since the size goes from 600x100 -> undefined -> 600x100, no event is fired. Does this makes sense?
from element-resize-detector.
Related Issues (20)
- [Question] Is V2 still planned? HOT 1
- ADA compliance issue: <object/> element is swipe-able HOT 5
- Performance issue with getting scrollbars sizes in scroll strategy. HOT 3
- Resize detector pollutes the dom HOT 1
- erd.listenTo() always fires initially? HOT 4
- Resize not reported for particular case where listener element is in flex layout HOT 1
- 'window' is not defined in SSR
- use ResizeObserver API when available HOT 3
- Scrollbars go out of sync when using animation HOT 1
- npm show element-resize-detector versions HOT 1
- Invalid arguments. Must be a DOM element or a collection of DOM elements HOT 4
- Console warning violations in Chrome `Forced reflow while executing JavaScript` HOT 3
- [Feature Request] Provide an ECMAScript module (ESM) bundle HOT 2
- Scroll detection strategy does not work within a shadow root HOT 3
- Options are not described in README. HOT 1
- how to trigger function in start and end? HOT 1
- Do you support ie11? HOT 1
- I want to ask what problems will occur if the code here is deleted HOT 1
- how to init not fire HOT 1
- TypeError Cannot read properties of null (reading 'defaultView') HOT 1
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 element-resize-detector.