Git Product home page Git Product logo

Comments (8)

signalpoint avatar signalpoint commented on August 16, 2024 4

I am also experiencing this issue and agree with the assessment from @skosito . Here's a cheap workaround that I use just before calling destroy():

if (!myHeadroom.scrollTracker) {
  myHeadroom.scrollTracker = {
    destroy: function() {}
  };
}
myHeadroom.destroy();

from headroom.js.

Konark-Web avatar Konark-Web commented on August 16, 2024 1

Up!

from headroom.js.

skosito avatar skosito commented on August 16, 2024 1

Hey @WickyNilliams, i have the same issue, the reason is scrollTracker is initialized inside setTimeout, and destroy can be called before that. It seems you had this same issue before and you fixed it, but now it is reintroduced again.
I am referring to this: #338
Could you please take a look? Thanks!
EDIT: It seems like there is a fix ready for this kind of situation here :) #339
Maybe you can merge this, it would be really helpful.

from headroom.js.

nasirkhan avatar nasirkhan commented on August 16, 2024 1

faced the same issue. I wanted to disable Headroom on some specific pages and getting error while tried to use the destroy. Can you suggest any solution to disable it by checking some conditions?

from headroom.js.

manoldonev avatar manoldonev commented on August 16, 2024 1

Facing the same issue while integrating the vanilla JS version in a React app -- race condition triggered while running the React Testing Library / Jest tests.

from headroom.js.

WickyNilliams avatar WickyNilliams commented on August 16, 2024

Hmm... I would not use the jquery plugin if you can avoid it - it's not been updated in a long time and i will eventually deprecate/delete it completely. Try the vanilla JS version, and see if that fixes.

from headroom.js.

Konark-Web avatar Konark-Web commented on August 16, 2024

I used

Hmm... I would not use the jquery plugin if you can avoid it - it's not been updated in a long time and i will eventually deprecate/delete it completely. Try the vanilla JS version, and see if that fixes.

I used vanilla js and have same problem. Look, I use simple code from your example, if and outpute in console object.

var headroom = new Headroom( this.$element.get( 0 ), options );

console.log(headroom);

headroom.init();

console.log(headroom);

// setTimeout(() => { headroom.destroy(); }, 5000);
headroom.destroy();

console.log(headroom);

If I dont use setTimeout, I have error:

headroom.min.js?ver=0.11.0:7 Uncaught TypeError: Cannot read property 'destroy' of undefined
If I use with timeout, its ok.

from headroom.js.

puredazzle avatar puredazzle commented on August 16, 2024

For me it worked if I used the function on the child ref, scrollTracker, like this in React:

useEffect(() => {
    const headroom = new Headroom(headroomRef.current, {
      classes: {
        // when element is initialised
        initial: 'transition-transform ease-linear',
        // when scrolling down
        unpinned: '-translate-y-full',
      },
    });

    headroom.init();

    return () => {
      if (headroom && headroom.scrollTracker) {
        headroom.scrollTracker.destroy();
      }
    };
  }, []);

from headroom.js.

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.