(function ($) { "use strict"; /*=========================================== Table of contents 01. On Load Function 02. Preloader 03. Mobile Menu Active 04. Sticky fix 05. Scroll To Top 06. Set Background Image 07. Popup Sidemenu 08. Search Box Popup 09. Magnific Popup 10. Filter Menu 11. Indicator 12. Title Rotate 13. Slider Tab 14. Range Slider 15. Procut Zoom Img 16. Quantity Adder 17. Rating Input Class Added 18. Tab Animation 19. Button Hove Effect 00. Right Click Disable 00. Inspect Element Disable =============================================*/ /*---------- 01. On Load Function ----------*/ $(window).on('load', function () { $('.preloader').hide(); }); /*---------- 02. Preloader ----------*/ if ($('.preloader').length > 0) { $('.preloaderCls').each(function () { $(this).on('click', function (e) { e.preventDefault(); $('.preloader').css('display', 'none'); }) }); }; /*---------- 03. Mobile Menu Active ----------*/ $('.mobile-menu-active').vsmobilemenu({ menuContainer: '.vs-mobile-menu', expandScreenWidth: $('.mobile-menu-active').data('expand'), menuToggleBtn: '.vs-menu-toggle', }); /*---------- 04. Sticky fix ----------*/ var lastScrollTop = ''; var scrollToTopBtn = '.scrollToTop' function stickyMenu($targetMenu, $toggleClass) { var st = $(window).scrollTop(); if ($(window).scrollTop() > 600) { if (st > lastScrollTop) { $targetMenu.removeClass($toggleClass); } else { $targetMenu.addClass($toggleClass); }; } else { $targetMenu.removeClass($toggleClass); }; lastScrollTop = st; }; $(window).on("scroll", function () { stickyMenu($('.sticky-header'), "active"); if ($(this).scrollTop() > 400) { $(scrollToTopBtn).addClass('show'); } else { $(scrollToTopBtn).removeClass('show'); } }); /*---------- 05. Scroll To Top ----------*/ $(scrollToTopBtn).on('click', function (e) { e.preventDefault(); $('html, body').animate({ scrollTop: 0 }, 3000); return false; }); /*---------- 06.Set Background Image ----------*/ if ($('[data-bg-src]').length > 0) { $('[data-bg-src]').each(function () { var src = $(this).attr('data-bg-src'); $(this).css({ 'background-image': 'url(' + src + ')' }); }); }; /*---------- 07. Popup Sidemenu ----------*/ function popupSideMenu($sideMenu, $sideMunuOpen, $sideMenuCls, $toggleCls) { // Sidebar Popup $($sideMunuOpen).on('click', function (e) { e.preventDefault(); $($sideMenu).addClass($toggleCls); }); $($sideMenu).on('click', function (e) { e.stopPropagation(); $($sideMenu).removeClass($toggleCls) }); var sideMenuChild = $sideMenu + ' > div'; $(sideMenuChild).on('click', function (e) { e.stopPropagation(); $($sideMenu).addClass($toggleCls) }); $($sideMenuCls).on('click', function (e) { e.preventDefault(); e.stopPropagation(); $($sideMenu).removeClass($toggleCls); }); }; popupSideMenu('.sidemenu-wrapper', '.sideMenuToggler', '.sideMenuCls', 'show'); /*---------- 08. Search Box Popup ----------*/ function popupSarchBox($searchBox, $searchOpen, $searchCls, $toggleCls) { $($searchOpen).on('click', function (e) { e.preventDefault(); $($searchBox).addClass($toggleCls); }); $($searchBox).on('click', function (e) { e.stopPropagation(); $($searchBox).removeClass($toggleCls); }); $($searchBox).find('form').on('click', function (e) { e.stopPropagation(); $($searchBox).addClass($toggleCls); }); $($searchCls).on('click', function (e) { e.preventDefault(); e.stopPropagation(); $($searchBox).removeClass($toggleCls); }); }; popupSarchBox('.popup-search-box', '.searchBoxTggler', '.searchClose', 'show'); /*----------- 09. Magnific Popup ----------*/ /* magnificPopup img view */ $('.popup-image').magnificPopup({ type: 'image', gallery: { enabled: true } }); /* magnificPopup video view */ $('.popup-video').magnificPopup({ type: 'iframe' }); //$ -> querySelector /*----------- 10. Filter Menu ----------*/ $('.filter-to-find').imagesLoaded(function () { var $filter = '.filter-to-find', $filterItem = '.grid-level', $filterMenu = '.filter-menu-active'; if ($($filterMenu).length > 0) { var $grid = $($filter).isotope({ itemSelector: $filterItem, filter: '*', masonry: { // use outer width of grid-sizer for columnWidth columnWidth: $filterItem } }); // filter items on button click $($filterMenu).on('click', 'button', function () { var filterValue = $(this).attr('data-filter'); $grid.isotope({ filter: filterValue }); }); // Menu Active Class $($filterMenu).on('click', 'button', function (event) { event.preventDefault(); $(this).addClass('active'); $(this).siblings('.active').removeClass('active'); }); }; }); /*----------- 11. Indicator ----------*/ $.fn.indicator = function () { var $menu = $(this), $linkBtn = $menu.find('a'), $btn = $menu.find('button'); // Append indicator $menu.append(''); var $line = $menu.find('.indicator'); // Check which type button is Available if ($linkBtn.length) { var $currentBtn = $linkBtn; } else if ($btn.length) { var $currentBtn = $btn } // On Click Button Class Remove $currentBtn.on('click', function (e) { e.preventDefault(); $(this).addClass('active'); $(this).siblings('.active').removeClass('active'); linePos() }) // Indicator Position function linePos() { var $btnActive = $menu.find('.active'), $height = $btnActive.css('height'), $width = $btnActive.css('width'), $top = $btnActive.position().top + 'px', $left = $btnActive.position().left + 'px'; $line.css({ top: $top, left: $left, width: $width, height: $height, }) } if ($menu.hasClass('vs-slider-tab')) { var linkslide = $menu.data('asnavfor'); $(linkslide).on('afterChange', function (event, slick, currentSlide, nextSlide) { setTimeout(linePos, 10) }); } linePos() } // Call On Load if ($('.filter-menu-style1').length) { $('.filter-menu-style1').indicator(); } if ($('.tab-indicator').length) { $('.tab-indicator').indicator(); } /*----------- 12. Title Rotate ----------*/ if($('.title-rotate').length) { $('.title-rotate').each(function () { var $title = $(this); var $letter = $title.text().split(''); $title.html('') for (var i = 0; i < $letter.length; i++) { $title.prepend('' + $letter[i] + '') } }) } /*----------- 13. Slider Tab ----------*/ $.fn.vsslideTab = function(btn){ $(this).each(function(){ var $menu = $(this), slider = $menu.data('asnavfor'), $btn = $menu.find(btn); var i = 0; // Change Slide on Btn Click $btn.each(function(){ $(this).attr('data-slide-go-to', i) i++ $(this).on('click', function(e){ e.preventDefault(); var slideno = $(this).data('slide-go-to'); $(slider).slick('slickGoTo', slideno); }) }) // Change Btn Active Class On Slide Change $(slider).on('afterChange', function (event, slick, currentSlide, nextSlide) { $btn.removeClass('active'); $('[data-slide-go-to=' + currentSlide + ']').addClass('active'); }); }); }; if ($('.vs-slider-tab').length) { $('.vs-slider-tab').vsslideTab('.tab-btn'); } /*----------- 14. Range Slider ----------*/ $("#slider-range").slider({ range: true, min: 40, max: 600, values: [60, 570], slide: function (event, ui) { $("#amount").val("$" + ui.values[0] + " - $" + ui.values[1]); } }); $("#amount").val("$" + $("#slider-range").slider("values", 0) + " - $" + $("#slider-range").slider("values", 1)); /*----------- 15. Procut Zoom Img ----------*/ if ($('.zoom-thumb').length) { $('.zoom-thumb').each(function(){ $(this).on('click', function(){ var srcSet = $(this).data('zoom-image'); $('.zoom-img').attr('src', srcSet); }) }) } /*----------- 16. Quantity Adder ----------*/ $('.quantity-plus').each(function () { $(this).on('click', function () { var $qty = $(this).siblings(".qty-input"); var currentVal = parseInt($qty.val()); if (!isNaN(currentVal)) { $qty.val(currentVal + 1); } }) }); $('.quantity-minus').each(function () { $(this).on('click', function () { var $qty = $(this).siblings(".qty-input"); var currentVal = parseInt($qty.val()); if (!isNaN(currentVal) && currentVal > 1) { $qty.val(currentVal - 1); } }); }) /*----------- 17. Rating Input Class Added ----------*/ if ($('.vs-rating-input').length > 0) { $('.vs-rating-input').each(function () { $(this).find('span').on('click', function () { $('.vs-rating-input span').addClass('active'); $(this).nextAll('span').removeClass('active'); }); }); }; /*----------- 18. Tab Animation ----------*/ $.fn.tabAnimation = function (){ $(this).on('hide.bs.tab', function (e) { var $old_tab = $($(e.target).attr("href")); var $new_tab = $($(e.relatedTarget).attr("href")); if ($new_tab.index() < $old_tab.index()) { $old_tab.css('position', 'relative').css("bottom", "0").show(); $old_tab.animate({ "bottom": "-200px" }, 300, function () { $old_tab.css("bottom", 0).removeAttr("style"); }); } else { $old_tab.css('position', 'relative').css("top", "0").show(); $old_tab.animate({ "top": "-200px" }, 300, function () { $old_tab.css("top", 0).removeAttr("style"); }); } }); $(this).on('show.bs.tab', function (e) { var $new_tab = $($(e.target).attr("href")); var $old_tab = $($(e.relatedTarget).attr("href")); if ($new_tab.index() > $old_tab.index()) { $new_tab.css('position', 'relative').css("bottom", "-200px"); $new_tab.animate({ "bottom": "0" }, 500); } else { $new_tab.css('position', 'relative').css("top", "-200px"); $new_tab.animate({ "top": "0" }, 500); } }); } $('a[data-bs-toggle="tab"]').tabAnimation(); /*----------- 19. Button Hove Effect ----------*/ $.fn.hoverClass = function(element, eleClass){ $(this).each(function(){ $(this).on('mouseenter', function () { $(element).addClass(eleClass); }).on('mouseleave', function () { $(element).removeClass(eleClass); }) }) }; $('.vs-btn:not(.style3), .ls-arrow, .slick-arrow').hoverClass('.vs-cursor, .vs-cursor2', 'style2'); /*----------- 20. Hero Slider Active ----------*/ $('.vs-hero-carousel').each(function () { var vsHslide = $(this); function d(data) { return vsHslide.data(data) } // Custom Style Set vsHslide.on('sliderWillLoad', function (event, slider) { // Define Variable var respLayer = jQuery(this).find('.ls-responsive'), lsDesktop = 'ls-desktop', lsLaptop = 'ls-laptop', lsTablet = 'ls-tablet', lsMobile = 'ls-mobile', windowWid = jQuery(window).width(), lgDevice = 1025, mdDevice = 993, smDevice = 768; // Set Style on each Layer respLayer.each(function () { var layer = jQuery(this); function lsd(data) { return (layer.data(data) === '') ? layer.data(null) : layer.data(data); } // var respStyle = (windowWid < smDevice) ? ((lsd(lsMobile)) ? lsd(lsMobile) : lsd(lsTablet)) : ((windowWid < mdDevice) ? ((lsd(lsTablet)) ? lsd(lsTablet) : lsd(lsDesktop)) : lsd(lsDesktop)), var respStyle = (windowWid < smDevice) ? lsd(lsMobile) : ((windowWid < mdDevice ? lsd(lsTablet) : ((windowWid < lgDevice) ? lsd(lsLaptop) : lsd(lsDesktop)))), mainStyle = (layer.attr('style') !== undefined) ? layer.attr('style') : ' '; layer.attr('style', mainStyle + respStyle); }); }); vsHslide.layerSlider({ allowRestartOnResize: true, maxRatio: (d('maxratio') ? d('maxratio') : 1), type: (d('slidertype') ? d('slidertype') : 'responsive'), pauseOnHover: (d('pauseonhover') ? true : false), navPrevNext: (d('navprevnext') ? true : false), hoverPrevNext: (d('hoverprevnext') ? true : false), hoverBottomNav: (d('hoverbottomnav') ? true : false), navStartStop: (d('navstartstop') ? true : false), navButtons: (d('navbuttons') ? true : false), loop: ((d('loop') == false) ? false : true), autostart: (d('autostart') ? true : false), height: (($(window).width() < 767) ? (d('sm-height') ? d('sm-height') : d('height')) : (d('height') ? d('height') : 1080)), responsiveUnder: (d('responsiveunder') ? d('responsiveunder') : 1220), layersContainer: (d('container') ? d('container') : 1220), showCircleTimer: (d('showcircletimer') ? true : false), skinsPath: 'layerslider/skins/', thumbnailNavigation: ((d('thumbnailnavigation') == false) ? false : true) }); vsHslide.find('[data-ls-go]').each(function () { $(this).on('click', function (e) { e.preventDefault(); var target = $(this).data('ls-go'); vsHslide.layerSlider(target) }); }); }); /*----------- 21. Counter Split ----------*/ $('.counter-number').each(function(){ var counter = $(this); var text = counter.html().split(''); counter.html(''); for (var i = 0; i < text.length; i++) { var digit = '' + text[i] + '' counter.append(digit) } }) /*----------- 00. Right Click Disable ----------*/ // window.addEventListener('contextmenu', function (e) { // // do something here... // e.preventDefault(); // }, false); /*----------- 00. Inspect Element Disable ----------*/ // document.onkeydown = function (e) { // if (event.keyCode == 123) { // return false; // } // if (e.ctrlKey && e.shiftKey && e.keyCode == 'I'.charCodeAt(0)) { // return false; // } // if (e.ctrlKey && e.shiftKey && e.keyCode == 'C'.charCodeAt(0)) { // return false; // } // if (e.ctrlKey && e.shiftKey && e.keyCode == 'J'.charCodeAt(0)) { // return false; // } // if (e.ctrlKey && e.keyCode == 'U'.charCodeAt(0)) { // return false; // } // } })(jQuery);