From bb3bc3bded95561bfdf78318dce336c7929f6780 Mon Sep 17 00:00:00 2001 From: moepoi Date: Wed, 10 Nov 2021 12:01:06 +0700 Subject: [PATCH] Add index.js --- public/js/index.js | 188 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 public/js/index.js diff --git a/public/js/index.js b/public/js/index.js new file mode 100644 index 0000000..c6a0ccc --- /dev/null +++ b/public/js/index.js @@ -0,0 +1,188 @@ +jQuery(document).ready(function ($) { + "user strict"; + + var mainSlider = $('.main.slider'); + var hamburger = $('.hamburger_container'); + var menu = $('.hamburger_menu'); + var menuActive = false; + var hamburgerClose = $('.hamburger_close'); + var fsOverlay = $('.fs_menu_overlay'); + + initMenu(); + initFavorite(); + initIsotopeFiltering(); + initTimer(); + initSlider(); + + function initMenu() { + if (hamburger.length) { + hamburger.on('click', function () { + if (!menuActive) { + openMenu(); + } + }); + } + if (fsOverlay.length) { + fsOverlay.on('click', function () { + if (menuActive) { + closeMenu(); + } + }); + } + if (hamburgerClose.length) { + hamburgerClose.on('click', function () { + if (menuActive) { + closeMenu(); + } + }); + } + if ($('.menu_item'), length) { + var items = document.getElementsByClassName('menu_item'); + var i; + + for (i = 0; i < items.length; i++) { + if (items[i].classList.contains("has-children")) { + items[i].onclick = function () { + this.classList.toggle("active"); + var panel = this.children[1]; + if (panel.style.maxHeight) { + panel.style.maxHeight = null; + } else { + panel.style.maxHeight = panel.scrollHeight + "px"; + } + } + } + } + } + } + + function openMenu() { + menu.addClass('active'); + fsOverlay.css('pointer-events', "auto"); + menuActive = true; + } + + function closeMenu() { + menu.removeClass('active'); + fsOverlay.css('pointer-events', "none"); + menuActive = false; + } + + function initTimer() { + if ($('.timer').length) { + + var target_date = new Date("August 31, 2021").getTime(); + var days, hours, minutes, seconds; + var d = $('#day'); + var h = $('#hour'); + var m = $('#minute'); + var s = $('#second'); + + setInterval(function () { + var current_date = new Date().getTime(); + var seconds_left = (target_date - current_date) / 1000; + + days = parseInt(seconds_left / 86400); + seconds_left = seconds_left % 86400; + + hours = parseInt(seconds_left / 3600); + seconds_left = seconds_left % 3600; + + minutes = parseInt(seconds_left / 60); + seconds = parseInt(seconds_left % 60); + + d.text(days); + h.text(hours); + m.text(minutes); + s.text(seconds); + }, 1000) + } + } + + function initFavorite() { + + if ($('.favorite').length) { + var favs = $('.favorite'); + + favs.each(function () { + var fav = $(this); + var active = false; + if (fav.hasClass('active')) { + active = true; + } + fav.on('click', function () { + if (active) { + fav.removeClass('active'); + active = false; + } else { + fav.addClass('active'); + active = true; + } + }) + }); + } + } + + function initIsotopeFiltering() { + if ($('.grid_sorting_button').length) { + $('.grid_sorting_button').click(function () { + $('.grid_sorting_button.active').removeClass('active'); + $(this).addClass('active'); + + var selector = $(this).attr('data-filter'); + $('.product-grid').isotope({ + filter: selector, + animationOptions: { + duration: 750, + easing: 'linear', + queue: false, + } + }); + return false + }); + } + } + + function initSlider() { + if ($('.product_slider').length) { + var slider1 = $('.product_slider'); + + slider1.owlCarousel({ + loop: false, + dots: false, + nav: false, + responsive: { + 0: { + items: 1 + }, + 480: { + items: 2 + }, + 768: { + items: 3 + }, + 991: { + items: 4 + }, + 1280: { + items: 5 + }, + 1440: { + items: 5 + }, + } + + }); + if ($('.product_slider_nav_left').length) { + $('.product_slider_nav_left').on('click', function () { + slider1.trigger('prev.owl.carousel'); + }) + } + if ($('.product_slider_nav_right').length) { + $('.product_slider_nav_right').on('click', function () { + slider1.trigger('next.owl.carousel'); + }) + } + } + } +}) \ No newline at end of file