Jump to content
Search Community

elegantseagulls last won the day on March 29 2023

elegantseagulls had the most liked content!

elegantseagulls

Members
  • Posts

    712
  • Joined

  • Last visited

  • Days Won

    13

Everything posted by elegantseagulls

  1. Since you're pin contains your next animation, it's not longer tied to a viable scroll position. You might look at this for its "containerAnimation" or "isInViewport":
  2. You have overflow hidden on your html/body, but are trying to use window.scrollTo, which is contradictory. Have you looked at using GSAP's scrollTo functionality/plugin? I also see multiple scroll bars in the CodePen, so I'm guessing that's also causing an issue. For your end value you spelled 'center' incorrectly, and your end value is triggering before your start value the way you have it setup.
  3. #designExt { max-width: 100vw; overflow: hidden; height: 100vh; display: flex; flex-wrap: nowrap; position: relative; } Updating the css to this seemed to work for me, unless I'm misunderstanding your question. You shouldn't need to limit the overflow on the body.
  4. Your fromTo needs more information, but it looks to me like you can just use a to animation for this. Example: gsap.to( ".right-door", { opacity: 0.85, scrollTrigger: { trigger: ".right-door", scrub: true, start: "top top" }, xPercent: -50 } );
  5. Exactly what I was looking for! Thanks!
  6. I think that's just browser behavior for when you remove content in Safari... I'd suggest also manually setting your scroll position immediate after you remove the content.
  7. Removing the button and taking the paused: true off the animation seems to play the animation just fine. The nature of setting things up like this, it's hard for React to know how many children/sub-children there are. That said, we set something similar to this up a long time ago, but I'm having trouble re-piecing it together in my head... this was when we were using pure components and lifecycles instead of hooks.
  8. You can setup animation components and import those into your other components in to avoid repeating code. Also, we've found using https://greensock.com/docs/v3/GSAP/gsap.registerEffect() and making the effects into hooks works pretty well across bigger projects.
  9. Looks like maybe fouc to me? You'll want to set your initial css property to visibility: hidden; Better details here:
  10. Adding ease: 'steps(1)' to your from and to will fix this, otherwise you can change duration to 0 and add a delay.
  11. You shouldn't need to use TimelineLite anymore (as of version 3.0). You can now just use gsap.timeline(). Also, you can write eases as strings now, so no need to import those (unless it's a special ease). More info here:
  12. I cannot replicate with my browsers, but I'd imagine you've got some overflow on another element that's causing the body to try to scroll separately from the scroller in your setup. have you tried removing the overflow-x and overflow-y styles from the .fl-tests class?
  13. You'll want to just add buttons to tween the draggable instance by one snapX... More clarity can be found here: and:
  14. Using from is probably a better bet for this animation: to lengthen duration, you'll want to add a duration: to your tweens. https://codepen.io/elegantseagulls/pen/NWLmGbO?editors=0110 I'm a bit confused as to what you're looking for for "#3"
  15. @GreenSock: Is there a way to exclude a transform style in FLIP? The issue I'm now bumping into is my intertia plugin is continuing to transform my FLIP-element's rotationY slightly as it decelerates... I was hoping setting FLIP to simple: true, or disabling draggable would fix, but it seems not to, can I manually set a parameter? Here's the WIP... It's a bit more complex than my previous demo, but code should hopefully still be pretty easy to follow: https://codepen.io/elegantseagulls/pen/LYJaLNx??editors=0010
  16. Ugg right in the docs... I should know better! I was looking, but must have glassed over it cause I was hoping to achieve something pretty unique.
  17. Exploring the the FLIP plugin some more, and am wondering if it's possible to flip nicely from 3D transforms. Am also wondering why the image in my demo is being flipped vertically when clicked, when there is only a Y rotation on it. Thanks for any insight.
  18. I think you'll want to use GSAP's Draggable for this (observer may work for this too). This thread may be helpful: Draggable Docs here:
  19. The issue is nesting multiple ScrollTriggers in a single timeline.
  20. Beat me to it! You'll also likely be able to remove the refs for span and header. And, since all the targets are being scoped now from the wrapper ref (Thank you gsap.context!) you can add a generic class to target rather than setting a unique id for each (unless you need that elsewhere). import { useRef, useEffect } from "react"; import { gsap } from "gsap"; import { ScrollTrigger } from "gsap/dist/ScrollTrigger"; const Sectionheader = ({ span, head, id }) => { const wrapperRef = useRef() useEffect(() => { if (!wrapperRef.current) return; gsap.registerPlugin(ScrollTrigger); const ctx = gsap.context(() => { let tl = gsap.timeline({ scrollTrigger: { trigger: wrapperRef.current, toggleActions: "restart reset restart reset", markers: true, start: 'top bottom', end: 'bottom top' } }); tl.from('gsap-span', { y: 30, opacity: 0, duration: 1, delay: 0.5, skewX: 3, ease: "power2.easeIn" }).from( '.gsap-head', { y: 30, opacity: 0, duration: 1, skewX: 3 }, +0.7 ); }, [wrapperRef.current]); return () => ctx.revert(); }, []); return ( <> <section ref={wrapperRef}> <p className="gsap-span"> {span} </p> <h2 className="gsap-head" > {head} </h2> </section> </> ); }; export default Sectionheader;
  21. It looks like you aren't importing ScrollTrigger or registering it. import ScrollTrigger from "gsap/ScrollTrigger"; gsap.registerPlugin(ScrollTrigger);
  22. Does onEnter instead of onUpdate work? onEnter: check, onEnterBack: check, onToggle could also be useful, depending on your use. onToggle: (self) => { self.isActive ? console.log(self.trigger.dataset.id) : null; }, More info on the callbacks here: https://greensock.com/docs/v3/Plugins/ScrollTrigger
  23. The gsap/scrollTrigger objects would look something like this: gsap.to(el, { transformOrigin: '50% 0', rotateX: '50deg', scrollTrigger: { target: hero, start: 'top bottom' end: 'bottom top', scrub: true, } }) You'll also want to make sure to set a perspective value in your CSS to the parent div.
×
×
  • Create New...