Git Product home page Git Product logo

Comments (6)

wnr avatar wnr commented on May 26, 2024

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.

szanata avatar szanata commented on May 26, 2024

@wnr Thank you! I created a MutationObserver to detect the css display change. Anyway, thanks for this awesome code!!

from element-resize-detector.

FrankManns avatar FrankManns commented on May 26, 2024

@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.

wnr avatar wnr commented on May 26, 2024

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.

FrankManns avatar FrankManns commented on May 26, 2024

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.

wnr avatar wnr commented on May 26, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.