forked from longpdo/neumorphism
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
123 lines (100 loc) · 2.92 KB
/
app.js
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
setTimeout(function() {
fadeOutPreloader(document.getElementById('preloader'), 69);
}, 1500);
$(document).ready(function() {
$(window).on('beforeunload', function() {
window.scrollTo(0, 0);
});
/* particlesJS.load(@dom-id, @path-json, @callback (optional)); */
particlesJS.load('landing', 'assets/particles.json', function() {});
// Typing Text
var element = document.getElementById('txt-rotate');
var toRotate = element.getAttribute('data-rotate');
var period = element.getAttribute('data-period');
setTimeout(function() {
new TxtRotate(element, JSON.parse(toRotate), period);
}, 1500);
// INJECT CSS
var css = document.createElement('style');
css.type = 'text/css';
css.innerHTML = '#txt-rotate > .wrap { border-right: 0.08em solid #666 }';
document.body.appendChild(css);
// Initialize AOS
AOS.init({
disable: 'mobile',
offset: 200,
duration: 600,
easing: 'ease-in-sine',
delay: 100,
once: true
});
randomizeOrder();
});
/* FUNCTIONS */
/* Preloader */
function fadeOutPreloader(element, duration) {
opacity = 1;
interval = setInterval(function() {
if (opacity <= 0) {
element.style.zIndex = 0;
element.style.opacity = 0;
element.style.filter = 'alpha(opacity = 0)';
// Allow horizontal scroll
document.documentElement.style.overflowY = 'auto';
// Remove preloader div
document.getElementById('preloader').remove();
clearInterval(interval);
} else {
opacity -= 0.1;
element.style.opacity = opacity;
element.style.filter = 'alpha(opacity = ' + opacity * 100 + ')';
}
}, duration);
}
/* Typing Text */
var TxtRotate = function(el, toRotate, period) {
this.toRotate = toRotate;
this.el = el;
this.loopNum = 0;
this.period = parseInt(period, 10) || 2000;
this.txt = '';
this.tick();
this.isDeleting = false;
};
TxtRotate.prototype.tick = function() {
var i = this.loopNum % this.toRotate.length;
var fullTxt = this.toRotate[i];
if (this.isDeleting) {
this.txt = fullTxt.substring(0, this.txt.length - 1);
} else {
this.txt = fullTxt.substring(0, this.txt.length + 1);
}
this.el.innerHTML = '<span class="wrap">' + this.txt + '</span>';
var that = this;
var delta = 200 - Math.random() * 100;
if (this.isDeleting) {
delta /= 5;
}
if (!this.isDeleting && this.txt === fullTxt) {
delta = this.period;
this.isDeleting = true;
} else if (this.isDeleting && this.txt === '') {
this.isDeleting = false;
this.loopNum++;
delta = 500;
}
setTimeout(function() {
that.tick();
}, delta);
};
/* Word Cloud */
function randomizeOrder() {
var parent = document.getElementById('skills');
var divs = parent.getElementsByTagName('div');
var frag = document.createDocumentFragment();
// Randomize order of skills
while (divs.length) {
frag.appendChild(divs[Math.floor(Math.random() * divs.length)]);
}
parent.appendChild(frag);
}