Topic: How do I get the sticky to stop near the bottom of its container
Andre Engelbrecht pro asked 7 years ago
Jakub Strebeyko staff answered 7 years ago
Andre Engelbrecht pro commented 7 years ago
Hi Jakub I want to the sticky content to start scrolling as normal content when it hits the bottom of the container. As in the example here: https://github.com/SAEONData/ReactTemplates/blob/master/screenshots/004.png. When the sticky widgets hit the stop point they start scrolling like normal content again. If you look at my content demo site: https://github.com/SAEONData/ReactTemplates/blob/master/screenshots/001.png You'll notice that the content becomes sticky as intended: https://github.com/SAEONData/ReactTemplates/blob/master/screenshots/002.png But then moves past the bottom of the container (marked by black bg): https://github.com/SAEONData/ReactTemplates/blob/master/screenshots/003.png How do I get it to stop being sticky, i.e. get the bottom of the container to become my stop point? Hope the images help bring clarity. Thanks in advance.Ollie Vincent pro commented 7 years ago
Hi, have you tried this link: <a href="https://mdbootstrap.com/react/advanced/react-sticky">https://mdbootstrap.com/react/advanced/react-sticky</a> This is a pro component thoughAndre Engelbrecht pro commented 7 years ago
Hi Ollie, yes I did, but that does not tell me how to accomplish what I want. As I've mentioned before I thought the bottomOffset prop in the Sticky component would do the trick, but it didn't, perhaps I was using it wrong.Andre Engelbrecht pro answered 7 years ago
Here's my code for the sticky:
<div className="col-md-4"> <StickyContainer style={{ background: "black", height: "100%" }}> <Sticky topOffset={20} bottomOffset={20}> {({ isSticky, wasSticky, style, distanceFromTop, distanceFromBottom, calculatedHeight }) => { let stickyHeight = (window.innerHeight - 105) return ( <div> <br /> <Card style={{ ...style }}> <CardBody style={{ height: stickyHeight }}> <CardTitle style={{ color: "#1565c0" }}>Side Panel</CardTitle> <br /> Content... </CardBody> </Card> </div> ); }} </Sticky> </StickyContainer> </div>
Ollie Vincent pro commented 7 years ago
Have you tried copying the exact example on the site to see if it works correctly?Andre Engelbrecht pro commented 7 years ago
I started from that and adapted to mine. But I don't see anything in the example that can help me figure out how to implement a stop point.Andre Engelbrecht pro commented 7 years ago
While I'm asking question, I'm not getting any notifications when anyone replies on comments on my questions, can I change this. The subscribe button at the top of the question does have a tick next to it.Bartłomiej Malanowski staff pro premium commented 7 years ago
@Andre, simply click "Subscribe" checkbox on the top of the page. It should workAndre Engelbrecht pro commented 7 years ago
That's the problem, I am subscribed, but not getting any notifications. Anyway, that's a side-issue, I'd still really like to know how to implement a stop-point for my sticky content?Jakub Strebeyko staff answered 7 years ago
Hi there Andre,
First of - thank for a throughout media coverage of the case - it helped to wrap the head around. After taking the snippet and simplifying it step by step, turns out that the Sticky falls through the container bottom because of the <div>
wrapper around it - getting rid of it should have your Card Sticky stop where you want it. Not sure sure why it happens, though, yet - gonna get to the bottom of it (pun intended). Anyway, let us know if there is anything else we can help you with. Concerning the notifications - have you checked the spam folder? Didn't mean to offend you, it's just - you never know!
With Best Regards,
Kuba
Andre Engelbrecht pro commented 7 years ago
Ah, eureka! That solves the problem. Outstanding work Kuba. Would love to know why the div had that unexpected effect if you can figure it out. I only had it there to include the , but was easy to work around now that I know the issue. Thanks a million. About the email notifications, I'm embarrassed to say that they were indeed in my spam folder. I don't regularly check my spam as there's never anything useful in there, so big apology there. But I'm at least happy to report that my sticky now works as expected/desired and I'm getting notifications for answers/comments. If/when you find out what's going on with the div, please post a comment here to let me know to, if you don't mind. Best regards, AndréFREE CONSULTATION
Hire our experts to build a dedicated project. We'll analyze your business requirements, for free.
Resolved
- User: Pro
- Premium support: No
- Technology: MDB React
- MDB Version: -
- Device: -
- Browser: -
- OS: -
- Provided sample code: No
- Provided link: No
Andre Engelbrecht pro commented 7 years ago
I've tried the bottomOffset prop, but I can't get that to work the way I want it.