-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathapp.js
More file actions
80 lines (72 loc) · 1.81 KB
/
Copy pathapp.js
File metadata and controls
80 lines (72 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
const loadSVG = () => {
fetch("city.svg")
.then(res => {
return res.text()
})
.then((svg) => {
document.getElementById('bg_city').innerHTML = svg;
document.querySelector('#bg_city svg').setAttribute("preserveAspectRatio", "xMidYMid slice")
setAnimationScroll()
})
}
const setAnimationScroll = () => {
gsap.registerPlugin(ScrollTrigger)
let runAnimation = gsap.timeline({
scrollTrigger: {
trigger: "#bg_city",
start: "top top",
end: "+=1000",
scrub: true,
pin: true
}
})
runAnimation.add([
gsap.to("#bg_city svg", 3, {
scale: 1.6
}),
gsap.to("#full_city", 3, {
opacity: 0
})
])
.add([
gsap.to("#building_top", 3, {
y: -200,
opacity: 0
}),
gsap.to("#wall_side", 3, {
y: -200,
opacity: 0
}),
gsap.to("#wall_front", 3, {
x: 200,
y: 200,
opacity: 0
})
])
.add([
gsap.to("#interior_wall_side", 2, {
x: -200,
opacity: 0
}),
gsap.to("#interior_wall_top", 2, {
x: 200,
opacity: 0
}),
gsap.to("#interior_wall_side_2", 2, {
y: -200,
opacity: 0
}),
gsap.to("#interior_wall_front", 2, {
y: 200,
opacity: 0
})
])
.add([
gsap.to("#building_bottom", 3, {
scale: 1.4,
x: -200,
y: -200
})
])
}
loadSVG()