Files
Code-Create/src/directives/tween.ts

33 lines
992 B
TypeScript
Raw Normal View History

2026-05-14 14:55:42 +08:00
import { gsap, } from 'gsap'
import { ScrollTrigger } from 'gsap/ScrollTrigger'
export default {
2026-05-19 09:57:24 +08:00
name: 'tween',
2026-05-18 13:57:05 +08:00
mounted(el: HTMLElement, binding: any) {
const params = binding.value
2026-05-28 14:42:28 +08:00
const duration = params.duration || 1
2026-05-14 14:55:42 +08:00
// if(!binding.value.isGsap)return
let dom = document.querySelector('body')
gsap.registerPlugin(ScrollTrigger);
let tl1 = gsap.timeline();
2026-05-28 14:42:28 +08:00
tl1.from(el,duration, params,)
2026-05-14 14:55:42 +08:00
ScrollTrigger.create({
trigger: el, // 触发器元素
start: "top 90%", // 滚动触发器的起始滚动位置
end: '100% 80%', // 滚动触发器的结束滚动位置
markers: false, // 开启标注功能
animation:tl1,
scroller:dom,//设置指定元素为滚动依据
2026-05-18 13:57:05 +08:00
scrub:false,
2026-05-18 11:33:26 +08:00
// toggleActions: "play reset play reset",
2026-05-14 14:55:42 +08:00
// onUpdate:(v)=>{
// if(v.progress < 0.1){
// v.trigger?.classList.remove('active')
// }else{
// v.trigger?.classList.add('active')
// // v.trigger?.classList.add('active')
// }
// }
});
},
2026-05-15 16:41:52 +08:00
};