码迷,mamicode.com
首页 > 其他好文 > 详细

scrolltrigger简单讲解

时间:2020-07-21 22:49:25      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:ott   rom   turn   return   anim   default   lld   容器   偏移量   

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) => {
                                setTimeout(resolve, 10)
                            })
                        },
                        // 移出元素的回调方法
                        out: (trigger: any) => {
                            return new Promise((resolve, reject) => {
                                setTimeout(resolve, 10)
                            })
                        }
                    }
                },
            },
            scroll: {
                // 滚动停止后,动画继续执行的毫秒数
                sustain: 200,
                // 滚动条的主体
                element: document.getElementById(‘scroll‘),
                // 滚动中的回调函数
                callback: (e: any) => {
                    if (e.y < 500) {
                        setMove(e.y + 100)
                    }
                },
                // 开始滚动的回调函数
                start: () => { },
                // 停止滚动的回调函数
                stop: () => { },
                // 滚动方向变化的回调函数
                directionChange: () => { }
            }
        })
        trigger.add(‘.an‘, {
            toggle: {
                class: {
                    in: [‘animateIn‘],
                    out: [‘animateOut‘]
                }
            }
        })
<div className="an"></div>

  

scrolltrigger简单讲解

标签:ott   rom   turn   return   anim   default   lld   容器   偏移量   

原文地址:https://www.cnblogs.com/huangqiming/p/13356620.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!