-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathscripts.js
97 lines (77 loc) · 2.81 KB
/
scripts.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
/*!
Title: Dev Portfolio Template
Version: 1.2.2
Last Change: 03/25/2020
Author: Ryan Fitzgerald
Repo: https://github.com/RyanFitzgerald/devportfolio-template
Issues: https://github.com/RyanFitzgerald/devportfolio-template/issues
Description: This file contains all the scripts associated with the single-page
portfolio website.
*/
(function($) {
// Remove no-js class
$('html').removeClass('no-js');
// Animate to section when nav is clicked
$('header a').click(function(e) {
// Treat as normal link if no-scroll class
if ($(this).hasClass('no-scroll')) return;
e.preventDefault();
var heading = $(this).attr('href');
var scrollDistance = $(heading).offset().top;
$('html, body').animate({
scrollTop: scrollDistance + 'px'
}, Math.abs(window.pageYOffset - $(heading).offset().top) / 1);
// Hide the menu once clicked if mobile
if ($('header').hasClass('active')) {
$('header, body').removeClass('active');
}
});
// Scroll to top
$('#to-top').click(function() {
$('html, body').animate({
scrollTop: 0
}, 500);
});
// Scroll to first element
$('#lead-down span').click(function() {
var scrollDistance = $('#lead').next().offset().top;
$('html, body').animate({
scrollTop: scrollDistance + 'px'
}, 500);
});
// Create timeline
$('#experience-timeline').each(function() {
$this = $(this); // Store reference to this
$userContent = $this.children('div'); // user content
// Create each timeline block
$userContent.each(function() {
$(this).addClass('vtimeline-content').wrap('<div class="vtimeline-point"><div class="vtimeline-block"></div></div>');
});
// Add icons to each block
$this.find('.vtimeline-point').each(function() {
$(this).prepend('<div class="vtimeline-icon"><i class="fa fa-map-marker"></i></div>');
});
// Add dates to the timeline if exists
$this.find('.vtimeline-content').each(function() {
var date = $(this).data('date');
if (date) { // Prepend if exists
$(this).parent().prepend('<span class="vtimeline-date">'+date+'</span>');
}
});
});
// Open mobile menu
$('#mobile-menu-open').click(function() {
$('header, body').addClass('active');
});
// Close mobile menu
$('#mobile-menu-close').click(function() {
$('header, body').removeClass('active');
});
// Load additional projects
$('#view-more-projects').click(function(e){
e.preventDefault();
$(this).fadeOut(300, function() {
$('#more-projects').fadeIn(300);
});
});
})(jQuery);