首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有自定义滚动值的GSAP ScrollTrigger波折

带有自定义滚动值的GSAP ScrollTrigger波折
EN

Stack Overflow用户
提问于 2021-03-14 16:34:36
回答 1查看 672关注 0票数 0

我正在试验gsap的ScrollTrigger。我有一个自定义滚动容器,并希望使用ScrollTiggers滚动器代理劫持卷轴。但结果很不稳定。我做错了什么吗?下面是我到目前为止所得到的一个例子。CodeSandbox

代码语言:javascript
复制
import { gsap } from "gsap";
import { ScrollTrigger } from "gsap/ScrollTrigger";
import scrollCtl from "./scrollCtl";

gsap.registerPlugin(ScrollTrigger);

const ctl = new scrollCtl();

ctl.on("scroll", () => ScrollTrigger.update);

ScrollTrigger.scrollerProxy(".container", {
  scrollTop(value) {
    return ctl.event.scroll; // getter
  },
  getBoundingClientRect() {
    return {
      top: 0,
      left: 0,
      width: window.innerWidth,
      height: window.innerHeight
    };
  }
});

gsap.to(".test", {
  scrollTrigger: {
    trigger: ".trigger",
    scroller: ".container",
    scrub: true,
    start: "top bottom",
    end: "top top",
    markers: true
  },
  scale: "1.5",
  ease: "none"
});

从代码框演示中可以看到,滚动非常平滑,但是标记在整个地方都在弹跳,绿色广场应该是平滑的,但是当你滚动而不是平滑地缩放时,它是在弹跳。还有来自其他库的演示,它们实现了非常平滑的效果,比如这个示例ScrollTigger机车卷。这里是文档页面,您可以在这里找到更多的例子,ScrollTrigger ScrollProxy(),我不明白为什么我的例子如此简陋。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-15 01:09:41

问题是:

代码语言:javascript
复制
// BAD
ctl.on("scroll", () => ScrollTrigger.update);

// GOOD
ctl.on("scroll", () => ScrollTrigger.update());

您只是忘记实际调用ScrollTrigger.update()方法:)

在未来,它可能是值得问在GreenSock论坛 -我们反应很快,这是一个社区完全致力于回答与绿色袜子有关的问题。

推特快乐!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66626933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档