Files
website-project-view/public/js/scripts.js
alphaAE bd4b3ed771 init
2022-07-16 03:19:14 +08:00

147 lines
3.6 KiB
JavaScript

/*!
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($) {
// Show current year
$('#current-year').text(new Date().getFullYear())
// 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)
})
})
// projecct image viewer
$('.project-image .image').click(function () {
$('#full-image').attr('src', $(this).attr('alt'))
$('#image-viewer').show()
})
$('#image-viewer .close').click(function () {
$('#image-viewer').hide()
})
// projecct video viewer
$('.project-video .image').click(function () {
console.log('click')
$('#full-video').attr('src', $(this).attr('alt'))
$('#video-viewer').show()
})
$('#video-viewer .close').click(function () {
$('#video-viewer').hide()
})
// projecct glb viewer
$('.project-glb .image').click(function () {
console.log('click')
$('#full-glb').attr('src', $(this).attr('alt'))
$('#glb-viewer').show()
})
$('#glb-viewer .close').click(function () {
$('#glb-viewer').hide()
})
})(jQuery);