zoukankan      html  css  js  c++  java
  • 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>
    

      



  • 相关阅读:
    redis安装以及php扩展
    Linux下php安装Redis扩展
    正则验证邮箱
    常用方法
    PHPExcel说明
    冒泡排序
    CURL post请求
    PHP生成随机字符串
    PHP中的字符串函数
    PHP中的数组函数
  • 原文地址:https://www.cnblogs.com/huangqiming/p/13039569.html
Copyright © 2011-2022 走看看