diff --git a/js/main.js b/js/main.js index 21c0a2c..94c71c9 100644 --- a/js/main.js +++ b/js/main.js @@ -3,314 +3,320 @@ * Author: LMPixels * Author URL: http://themeforest.net/user/lmpixels * Version: 1.6.0 +* With YJH edits - fixed issue with content leak, preloader */ (function($) { -"use strict"; - // Portfolio subpage filters - function portfolio_init() { - var portfolio_grid = $('.portfolio-grid'), - portfolio_filter = $('.portfolio-filters'); - - if (portfolio_grid) { - - portfolio_grid.shuffle({ - speed: 450, - itemSelector: 'figure' - }); - - portfolio_filter.on("click", ".filter", function (e) { - portfolio_grid.shuffle('update'); - e.preventDefault(); - $('.portfolio-filters .filter').parent().removeClass('active'); - $(this).parent().addClass('active'); - portfolio_grid.shuffle('shuffle', $(this).attr('data-group') ); - }); - - } - } - // /Portfolio subpage filters - - - // Hide Mobile menu - function mobileMenuHide() { - var windowWidth = $(window).width(), - siteHeader = $('#site_header'); - - if (windowWidth < 1025) { - siteHeader.addClass('mobile-menu-hide'); - $('.menu-toggle').removeClass('open'); - setTimeout(function(){ - siteHeader.addClass('animate'); - }, 500); - } else { - siteHeader.removeClass('animate'); + "use strict"; + // Portfolio subpage filters + function portfolio_init() { + var portfolio_grid = $('.portfolio-grid'), + portfolio_filter = $('.portfolio-filters'); + + if (portfolio_grid) { + + portfolio_grid.shuffle({ + speed: 450, + itemSelector: 'figure' + }); + + portfolio_filter.on("click", ".filter", function (e) { + portfolio_grid.shuffle('update'); + e.preventDefault(); + $('.portfolio-filters .filter').parent().removeClass('active'); + $(this).parent().addClass('active'); + portfolio_grid.shuffle('shuffle', $(this).attr('data-group') ); + }); + + } } - } - // /Hide Mobile menu - - // Custom scroll - function customScroll() { - var windowWidth = $(window).width(); - if (windowWidth > 1024) { - $('.animated-section, .single-page-content').each(function() { - $(this).perfectScrollbar(); - }); - } else { - $('.animated-section, .single-page-content').each(function() { - $(this).perfectScrollbar('destroy'); - }); + // /Portfolio subpage filters + + + // Hide Mobile menu + function mobileMenuHide() { + var windowWidth = $(window).width(), + siteHeader = $('#site_header'); + + if (windowWidth < 1025) { + siteHeader.addClass('mobile-menu-hide'); + $('.menu-toggle').removeClass('open'); + setTimeout(function(){ + siteHeader.addClass('animate'); + }, 500); + } else { + siteHeader.removeClass('animate'); + } } - } - // /Custom scroll - - // Contact form validator - $(function () { - - $('#contact_form').validator(); - - $('#contact_form').on('submit', function (e) { - if (!e.isDefaultPrevented()) { - var url = "contact_form/contact_form.php"; - - $.ajax({ - type: "POST", - url: url, - data: $(this).serialize(), - success: function (data) - { - var messageAlert = 'alert-' + data.type; - var messageText = data.message; - - var alertBox = '
' + messageText + '
'; - if (messageAlert && messageText) { - $('#contact_form').find('.messages').html(alertBox); - $('#contact_form')[0].reset(); - } - } + // /Hide Mobile menu + + // Custom scroll + function customScroll() { + var windowWidth = $(window).width(); + if (windowWidth > 1024) { + $('.animated-section, .single-page-content').each(function() { + $(this).perfectScrollbar(); + }); + } else { + $('.animated-section, .single-page-content').each(function() { + $(this).perfectScrollbar('destroy'); }); - return false; } + } + // /Custom scroll + + // Contact form validator + $(function () { + + $('#contact_form').validator(); + + $('#contact_form').on('submit', function (e) { + if (!e.isDefaultPrevented()) { + var url = "contact_form/contact_form.php"; + + $.ajax({ + type: "POST", + url: url, + data: $(this).serialize(), + success: function (data) + { + var messageAlert = 'alert-' + data.type; + var messageText = data.message; + + var alertBox = '
' + messageText + '
'; + if (messageAlert && messageText) { + $('#contact_form').find('.messages').html(alertBox); + $('#contact_form')[0].reset(); + } + } + }); + return false; + } + }); }); - }); - // /Contact form validator - - //On Window load & Resize - $(window) - .on('load', function() { //Load - // Animation on Page Loading - $(".preloader").fadeOut( 800, "linear" ); - - // initializing page transition. - var ptPage = $('.animated-sections'); - if (ptPage[0]) { - PageTransitions.init({ - menu: 'ul.main-menu', + // /Contact form validator + + //On Window load & Resize + $(window) + .on('load', function() { //Load + // Animation on Page Loading + $(".preloader").fadeOut( 800, "linear" ); + + // initializing page transition. + var ptPage = $('.animated-sections'); + if (ptPage[0]) { + PageTransitions.init({ + menu: 'ul.main-menu', + }); + } + }) + .on('resize', function() { //Resize + mobileMenuHide(); + $('.animated-section').each(function() { + $(this).perfectScrollbar('update'); }); - } - }) - .on('resize', function() { //Resize - mobileMenuHide(); - $('.animated-section').each(function() { - $(this).perfectScrollbar('update'); + customScroll(); + }); + + + // On Document Load + $(document).ready(function () { + var movementStrength = 23; + var height = movementStrength / $(document).height(); + var width = movementStrength / $(document).width(); + + //$('#loading').hide(); + $('.page-content').first().css('display', 'block'); // Show page content AFTER preloader + + $("body").on('mousemove', function(e){ + var pageX = e.pageX - ($(document).width() / 2), + pageY = e.pageY - ($(document).height() / 2), + newvalueX = width * pageX * -1, + newvalueY = height * pageY * -1, + elements = $('.lm-animated-bg'); + + elements.addClass('transition'); + elements.css({ + "background-position": "calc( 50% + " + newvalueX + "px ) calc( 50% + " + newvalueY + "px )", + }); + + setTimeout(function() { + elements.removeClass('transition'); + }, 300); + }) + + // Mobile menu + $('.menu-toggle').on("click", function () { + $('#site_header').addClass('animate'); + $('#site_header').toggleClass('mobile-menu-hide'); + $('.menu-toggle').toggleClass('open'); + }); + + // Mobile menu hide on main menu item click + $('.main-menu').on("click", "a", function (e) { + mobileMenuHide(); + }); + + // Sidebar toggle + $('.sidebar-toggle').on("click", function () { + $('#blog-sidebar').toggleClass('open'); + }); + + // Initialize Portfolio grid + var $portfolio_container = $(".portfolio-grid"); + $portfolio_container.imagesLoaded(function () { + portfolio_init(this); }); + + // Blog grid init + var $container = $(".blog-masonry"); + $container.imagesLoaded(function(){ + $container.masonry(); + }); + customScroll(); - }); - - - // On Document Load - $(document).ready(function () { - var movementStrength = 23; - var height = movementStrength / $(document).height(); - var width = movementStrength / $(document).width(); - $("body").on('mousemove', function(e){ - var pageX = e.pageX - ($(document).width() / 2), - pageY = e.pageY - ($(document).height() / 2), - newvalueX = width * pageX * -1, - newvalueY = height * pageY * -1, - elements = $('.lm-animated-bg'); - - elements.addClass('transition'); - elements.css({ - "background-position": "calc( 50% + " + newvalueX + "px ) calc( 50% + " + newvalueY + "px )", + + // Text rotation + $('.text-rotation').owlCarousel({ + loop: true, + dots: false, + nav: false, + margin: 0, + items: 1, + autoplay: true, + autoplayHoverPause: false, + autoplayTimeout: 3800, + animateOut: 'animated-section-scaleDown', + animateIn: 'animated-section-scaleUp' }); - - setTimeout(function() { - elements.removeClass('transition'); - }, 300); - }) - - // Mobile menu - $('.menu-toggle').on("click", function () { - $('#site_header').addClass('animate'); - $('#site_header').toggleClass('mobile-menu-hide'); - $('.menu-toggle').toggleClass('open'); - }); - - // Mobile menu hide on main menu item click - $('.main-menu').on("click", "a", function (e) { - mobileMenuHide(); - }); - - // Sidebar toggle - $('.sidebar-toggle').on("click", function () { - $('#blog-sidebar').toggleClass('open'); - }); - - // Initialize Portfolio grid - var $portfolio_container = $(".portfolio-grid"); - $portfolio_container.imagesLoaded(function () { - portfolio_init(this); - }); - - // Blog grid init - var $container = $(".blog-masonry"); - $container.imagesLoaded(function(){ - $container.masonry(); - }); - - customScroll(); - - // Text rotation - $('.text-rotation').owlCarousel({ - loop: true, - dots: false, - nav: false, - margin: 0, - items: 1, - autoplay: true, - autoplayHoverPause: false, - autoplayTimeout: 3800, - animateOut: 'animated-section-scaleDown', - animateIn: 'animated-section-scaleUp' - }); - - // Testimonials Slider - $(".testimonials.owl-carousel").owlCarousel({ - nav: true, // Show next/prev buttons. - items: 3, // The number of items you want to see on the screen. - loop: false, // Infinity loop. Duplicate last and first items to get loop illusion. - navText: false, - autoHeight: true, - margin: 25, - responsive : { - // breakpoint from 0 up - 0 : { - items: 1, - }, - // breakpoint from 480 up - 480 : { - items: 1, - }, - // breakpoint from 768 up - 768 : { - items: 2, - }, - 1200 : { - items: 2, - } - } - }); - - // Clients Slider - $(".clients.owl-carousel").imagesLoaded().owlCarousel({ - nav: true, // Show next/prev buttons. - items: 2, // The number of items you want to see on the screen. - loop: false, // Infinity loop. Duplicate last and first items to get loop illusion. - navText: false, - margin: 10, - autoHeight: true, - responsive : { - // breakpoint from 0 up - 0 : { - items: 2, - }, - // breakpoint from 768 up - 768 : { - items: 4, - }, - 1200 : { - items: 5, + + // Testimonials Slider + $(".testimonials.owl-carousel").owlCarousel({ + nav: true, // Show next/prev buttons. + items: 3, // The number of items you want to see on the screen. + loop: false, // Infinity loop. Duplicate last and first items to get loop illusion. + navText: false, + autoHeight: true, + margin: 25, + responsive : { + // breakpoint from 0 up + 0 : { + items: 1, + }, + // breakpoint from 480 up + 480 : { + items: 1, + }, + // breakpoint from 768 up + 768 : { + items: 2, + }, + 1200 : { + items: 2, + } } - } - }); - - - //Form Controls - $('.form-control') - .val('') - .on("focusin", function(){ - $(this).parent('.form-group').addClass('form-group-focus'); - }) - .on("focusout", function(){ - if($(this).val().length === 0) { - $(this).parent('.form-group').removeClass('form-group-focus'); + }); + + // Clients Slider + $(".clients.owl-carousel").imagesLoaded().owlCarousel({ + nav: true, // Show next/prev buttons. + items: 2, // The number of items you want to see on the screen. + loop: false, // Infinity loop. Duplicate last and first items to get loop illusion. + navText: false, + margin: 10, + autoHeight: true, + responsive : { + // breakpoint from 0 up + 0 : { + items: 2, + }, + // breakpoint from 768 up + 768 : { + items: 4, + }, + 1200 : { + items: 5, + } } }); - - // Lightbox init - $('body').magnificPopup({ - delegate: 'a.lightbox', - type: 'image', - removalDelay: 300, - - // Class that is added to popup wrapper and background - // make it unique to apply your CSS animations just to this exact popup - mainClass: 'mfp-fade', - image: { - // options for image content type - titleSrc: 'title', - gallery: { - enabled: true - }, - }, - - iframe: { - markup: '
'+ - '
'+ - ''+ - '
'+ - '
', // HTML markup of popup, `mfp-close` will be replaced by the close button - - patterns: { - youtube: { - index: 'youtube.com/', // String that detects type of video (in this case YouTube). Simply via url.indexOf(index). - - id: null, // String that splits URL in a two parts, second part should be %id% - // Or null - full URL will be returned - // Or a function that should return %id%, for example: - // id: function(url) { return 'parsed id'; } - - src: '%id%?autoplay=1' // URL that will be set as a source for iframe. + + + //Form Controls + $('.form-control') + .val('') + .on("focusin", function(){ + $(this).parent('.form-group').addClass('form-group-focus'); + }) + .on("focusout", function(){ + if($(this).val().length === 0) { + $(this).parent('.form-group').removeClass('form-group-focus'); + } + }); + + // Lightbox init + $('body').magnificPopup({ + delegate: 'a.lightbox', + type: 'image', + removalDelay: 300, + + // Class that is added to popup wrapper and background + // make it unique to apply your CSS animations just to this exact popup + mainClass: 'mfp-fade', + image: { + // options for image content type + titleSrc: 'title', + gallery: { + enabled: true }, - vimeo: { - index: 'vimeo.com/', - id: '/', - src: '//player.vimeo.com/video/%id%?autoplay=1' + }, + + iframe: { + markup: '
'+ + '
'+ + ''+ + '
'+ + '
', // HTML markup of popup, `mfp-close` will be replaced by the close button + + patterns: { + youtube: { + index: 'youtube.com/', // String that detects type of video (in this case YouTube). Simply via url.indexOf(index). + + id: null, // String that splits URL in a two parts, second part should be %id% + // Or null - full URL will be returned + // Or a function that should return %id%, for example: + // id: function(url) { return 'parsed id'; } + + src: '%id%?autoplay=1' // URL that will be set as a source for iframe. + }, + vimeo: { + index: 'vimeo.com/', + id: '/', + src: '//player.vimeo.com/video/%id%?autoplay=1' + }, + gmaps: { + index: '//maps.google.', + src: '%id%&output=embed' + } }, - gmaps: { - index: '//maps.google.', - src: '%id%&output=embed' + + srcAction: 'iframe_src', // Templating object key. First part defines CSS selector, second attribute. "iframe_src" means: find "iframe" and set attribute "src". + }, + + callbacks: { + markupParse: function(template, values, item) { + values.title = item.el.attr('title'); } }, - - srcAction: 'iframe_src', // Templating object key. First part defines CSS selector, second attribute. "iframe_src" means: find "iframe" and set attribute "src". - }, - - callbacks: { - markupParse: function(template, values, item) { - values.title = item.el.attr('title'); - } - }, + }); + + //Google Maps + if ($(".lmpixels-map")[0]){ + var address = 'San Francisco, S601 Townsend Street, California, USA', //Replace with Your Address + address = encodeURIComponent(address), + src = 'https://maps.google.com/maps?q=' + address + '&t=m&z=16&output=embed&iwloc=near&output=embed'; + $(".lmpixels-map iframe").attr("src", src); + } }); - - //Google Maps - if ($(".lmpixels-map")[0]){ - var address = 'San Francisco, S601 Townsend Street, California, USA', //Replace with Your Address - address = encodeURIComponent(address), - src = 'https://maps.google.com/maps?q=' + address + '&t=m&z=16&output=embed&iwloc=near&output=embed'; - $(".lmpixels-map iframe").attr("src", src); - } - }); - -})(jQuery); + + })(jQuery); +