• ScrollTrigger简单说明


    1、整体的自我理解

         const trigger = new ScrollTrigger.default({
                trigger: {
                    once: false,    // 切换是否只是一次性
                    offset: {
                        // 元素的偏移量要加上视图的偏移量才算整体偏移量
                        // 例如:现在的视图高度是667,元素out的高度是228(还没显示用out元素高度,已经显示用in元素的高度),所以现在的偏移量是228*0.2+667*02
                        element: {
                            x: 0,
                            y: (trigger: any, rect: any, direction: any) => {
                                // rect (整体scrollDOM容器的所有信息)
                                // trigger (内部已经添加的动画)
                                // direction (方向,top,bottom等)
                                // 元素距离视图层多少的偏移量就显示元素
                                return 0.2
                            }
                        },
                        viewport: {
                            x: 0,
                            y: (trigger: any, frame: any, direction: any) => {
                                // trigger (内部已经添加的动画)
                                // frame (视图高宽)
                                // direction (方向,top,bottom等)
                                return trigger.visible ? 0 : 0.2
                            }
                        }
                    },
                    toggle: {
                        // 元素切换的class,可以数组显示多个元素,也可以只是字符串
                        class: {
                        },
                        // 回调函数
                        callback: {
                            // 元素可见状态变化的回调方法
                            visible: (trigger: any) => {
    
                            },
                            // 进入元素的回调方法
                            in: (trigger: any) => {
                                return new Promise((resolve, reject) => {
                                    console.log('in')
                                    console.log(trigger)
                                    setTimeout(resolve, 10)
                                })
                            },
                            // 移出元素的回调方法
                            out: (trigger: any) => {
                                return new Promise((resolve, reject) => {
                                    setTimeout(resolve, 10)
                                })
                            }
                        }
                    },
                },
                scroll: {
                    // 滚动停止后,动画继续执行的毫秒数
                    sustain: 200,
                    // 滚动条的主体
                    element: document.getElementById('scroll'),
                    // 滚动中的回调函数
                    callback: (e: any) => { console.log(e) },
                    // 开始滚动的回调函数
                    start: () => { },
                    // 停止滚动的回调函数
                    stop: () => { },
                    // 滚动方向变化的回调函数
                    directionChange: () => { }
                }
            })
            trigger.add('#an', {
                toggle: {
                    class: {
                        in: ['animateIn'],
                        out: ['animateOut']
                    }
                }
            })
    
    

    2、html

    <div className={style.scrollView} id="scroll">
        <div id="an"></div>
    </div>
    

      



  • 相关阅读:
    zt 必看: 原来PCIe技术原理这么简单!
    zt linux:centos 解决SSH连接Linux超时自动断开
    idea总结和未来的想法
    linux一些技巧
    zt如何解决Verilog目前不支持数组型端口定义!
    高速设计学习-干货!高速串行Serdes均衡之FFE
    zt:tcpdump抓包对性能的影响
    zt:TCP 学习
    verdi使用
    IE 浏览器下 button元素自动触发click?
  • 原文地址:https://www.cnblogs.com/huangqiming/p/13039569.html
Copyright © 2020-2023  润新知