Skip to content
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

Calling updates, allows not to set a new stickyBitStickyOffset value #78

Open
patric-eberle opened this issue Jul 8, 2020 · 4 comments

Comments

@patric-eberle
Copy link

Describe the bug
When calling this.stickybitInstance.update({ stickyBitStickyOffset: <my-new-value> }), the top spacing of the sticky element is not adjusted. It always seems to use the initial value, even though, the prop is updated on the instance.

To Reproduce

const stickybitsInstancetoBeUpdated = stickybits("selector");
stickybitsInstancetoBeUpdated.update({ stickyBitStickyOffset: 20 });

Expected behavior
The sticky element uses the newly defined stickyBitStickyOffset as top value.

Screenshots

Desktop (please complete the following information):

  • OS: macOS 10.15
  • Browser: Chrome
  • Version: 83

Additional context
Stickybits: 3.7.7

I think the following ticket on the old repository documents the same issue, even if I was not able to call the recalculation from outside myself: dollarshaveclub#663

@sedax90
Copy link

sedax90 commented Sep 14, 2020

We have the same problem... any ideas for solving?

@hanoii
Copy link

hanoii commented Nov 6, 2020

This seems to have done it for me:

    stickybitsInstance.update({ stickyBitStickyOffset: 20 });
    stickybitsInstance.update();

@gching
Copy link

gching commented Dec 14, 2020

So I've found an alternative way of updating it, by cleaning it up and it works for me:

stickyBitsInstance.cleanup();
stickyBitsInstance = stickybits('selector', {stickyBitStickyOffset: newOffset });

Of course your cleaning up the old instance and making a new instance of it but for now it works for my use-case.

@TwoD
Copy link

TwoD commented Sep 12, 2021

I think the main problem is that update does not actually have an effect or move the element directly. It would need to call the manageState() method with a force flag or similar to do all calculations checks again, and actually call applyStyles() even if the sticky/stuck state hasn't changed. There is no practical way to force that from the outside right now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants