我正在ScrollTrigger(.square)类上进行zoom .当ScrollTriggered放大并溢出到".Test"类的外部时,我希望zoom 在".test"类内部可见,并且不希望它在其他容器上溢出,我的代码出了什么问题?

gsap.registerPlugin(ScrollTrigger);

const tl = gsap.timeline({
    scrollTrigger: { 
        trigger: ".square", 
        start: "top top",
        end: "+=100%",
        scrub: true,
        pin: true,
        markers: true, 
    }
})

.to(".square", {
    scale: 2, 
    ease: "none"
})
    html, * {
        padding: 0px;
        margin: 0px;
    }

    body {
        display: flex;
        justify-content: center;
    }

    .container {
        width: 50%;
    }

    .test {
        width: 100%;
        height: 500vh;
        background-color: black;
    }

    .square {
        width: 100%;
        height: 100px;
        background-color: yellow;
    }
<body>
    <section class="container">
        <div class="test">
            <div class="square"></div>
        </div>
    </section>
    <section></section>
</body>


<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.5/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.5/ScrollTrigger.min.js"></script>

推荐答案

将剪辑路径添加到.test类:

gsap.registerPlugin(ScrollTrigger);

const tl = gsap.timeline({
    scrollTrigger: { 
        trigger: ".square", 
        start: "top top",
        end: "+=100%",
        scrub: true,
        pin: true,
        markers: true, 
    }
})

.to(".square", {
    scale: 2, 
    ease: "none"
})
    html, * {
        padding: 0px;
        margin: 0px;
    }

    body {
        display: flex;
        justify-content: center;
    }

    .container {
        width: 50%;
    }

    .test {
        width: 100%;
        height: 500vh;
        background-color: black;
        overflow: hidden;
        clip-path: inset(0 0 0 0);
    }

    .square {
        width: 100%;
        height: 100px;
        background-color: yellow;
    }
<body>
    <section class="container">
        <div class="test">
            <div class="square"></div>
        </div>
    </section>
    <section></section>
</body>


<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.5/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.5/ScrollTrigger.min.js"></script>

Javascript相关问答推荐

从外部访问组件变量-Vueejs

foreach循环中的Typescript字符串索引

JavaScript文本区域阻止KeyDown/KeyUp事件本身上的Alt GR +键组合

使用json文件字符串来enum显示类型字符串无法按照计算的enum成员值的要求分配给类型号

将json数组项转换为js中的扁平

Vue:ref不会创建react 性属性

Google图表时间轴—更改hAxis文本 colored颜色

拖放仅通过 Select 上传

仅针对RTK查询中的未经授权的错误取消maxRetries

DOM不自动更新,尽管运行倒计时TS,JS

OpenAI转录API错误请求

TypeError:无法读取未定义的属性(正在读取';宽度';)

为什么可选参数的顺序会导致问题?

如何在和IF语句中使用||和&;&;?

将多个文本框中的输出合并到一个文本框中

在GraphQL解析器中修改上下文值

按特定顺序将4个数组组合在一起,按ID分组

如何在Reaction中设置缺省值, Select 下拉列表,动态追加剩余值?

需要刷新以查看Mern堆栈应用程序中的更改

在此div中添加一个类,并在一段时间后在Java脚本中将其删除