(function ($) { 'use strict'; /* |-------------------------------------------------------------------------- | Template Name: Bione | Author: Laralink | Version: 1.0.0 |-------------------------------------------------------------------------- |-------------------------------------------------------------------------- | TABLE OF CONTENTS: |-------------------------------------------------------------------------- | | 1. Preloader | 2. Mobile Menu | 3. Sticky Header | 4. Dynamic Background | 5. Slick Slider | 6. Horizonta Full Screen Swiper Slider | 7. Vertical Full Screen Swiper Slider | 8. Parallax Swiper Slider | 9. Modal Video | 10. Scroll Up | 11. Ripple | 12. Counter Animation | 13. Accordian | 14. Tabs | 15. Hover To Active | 16. Progress Bar | 17. Review | 18. Shining Active | 19. Hobble Effect | 20. Scroll Slider | */ /*-------------------------------------------------------------- Scripts initialization --------------------------------------------------------------*/ $.exists = function (selector) { return $(selector).length > 0; }; $(window).on('load', function () { preloader(); }); $(function () { mainNav(); stickyHeader(); dynamicBackground(); counterInit(); slickInit(); modalVideo(); scrollUp(); rippleInit(); accordian(); tabs(); hoverActive(); progressBar(); review(); fullScreenHorizontalSlider(); fullScreenVerticalSlider(); parallaxSwiperSlider(); shiningActive(); hobbleEffect(); scrollSliderActive(); if ($.exists('.wow')) { new WOW().init(); } if ($.exists('.player')) { $('.player').YTPlayer(); } }); $(window).on('scroll', function () { showScrollUp(); }); /*-------------------------------------------------------------- 1. Preloader --------------------------------------------------------------*/ function preloader() { $('.cs_preloader').fadeOut(); $('cs_preloader_in').delay(150).fadeOut('slow'); } /*-------------------------------------------------------------- 2. Mobile Menu --------------------------------------------------------------*/ function mainNav() { $('.cs_nav').append('', ); $('.cs_menu_toggle').on('click', function () { $(this) .toggleClass('cs_toggle_active') .siblings('.cs_nav_list') .toggleClass('cs_active'); }); $('.cs_menu_toggle') .parents('body') .find('.cs_side_header') .addClass('cs_has_main_nav'); $('.cs_menu_toggle') .parents('body') .find('.cs_toolbox') .addClass('cs_has_main_nav'); $('.cs_munu_dropdown_toggle').on('click', function () { $(this).toggleClass('active').siblings('ul').slideToggle(); $(this).parent().toggleClass('active'); }); /* Side Nav */ $('.cs_hamburger_info_btn').on('click', function () { $('.cs_side_header').addClass('active'); $('html').addClass('cs_hamburger_active'); }); $('.cs_close, .cs_side_header_overlay').on('click', function () { $('.cs_side_header').removeClass('active'); $('html').removeClass('cs_hamburger_active'); }); /* Hamburger Menu */ $('.cs_hamburger_menu .menu-item-has-children>a').on('click', function (e) { e.preventDefault(); $(this).siblings('ul').slideToggle(); $(this).siblings('.cs_munu_dropdown_toggle').toggleClass('active'); }); $('.cs_hamburger_menu_btn').on('click', function (e) { $('.cs_hamburger_header, .cs_hamburger_overlay').addClass('active'); $('html').addClass('cs_hamburger_active'); }); $('.cs_close_hamburger, .cs_hamburger_overlay').on('click', function (e) { $('.cs_hamburger_header, .cs_hamburger_overlay').removeClass('active'); $('html').removeClass('cs_hamburger_active'); }); } /*-------------------------------------------------------------- 3. Sticky Header --------------------------------------------------------------*/ function stickyHeader() { var $window = $(window); var lastScrollTop = 0; var $header = $('.cs_sticky_header'); var headerHeight = $header.outerHeight() + 20; $window.scroll(function () { var windowTop = $window.scrollTop(); if (windowTop >= headerHeight) { $header.addClass('cs_gescout_sticky'); } else { $header.removeClass('cs_gescout_sticky'); $header.removeClass('cs_gescout_show'); } if ($header.hasClass('cs_gescout_sticky')) { if (windowTop < lastScrollTop) { $header.addClass('cs_gescout_show'); } else { $header.removeClass('cs_gescout_show'); } } lastScrollTop = windowTop; }); } /*-------------------------------------------------------------- 4. Dynamic Background --------------------------------------------------------------*/ function dynamicBackground() { $('[data-src]').each(function () { var src = $(this).attr('data-src'); $(this).css({ 'background-image': 'url(' + src + ')', }); }); } /*-------------------------------------------------------------- 5. Slick Slider --------------------------------------------------------------*/ function slickInit() { if ($.exists('.cs_slider')) { $('.cs_slider').each(function () { // Slick Variable var $ts = $(this).find('.cs_slider_container'); var $slickActive = $(this).find('.cs_slider_wrapper'); // Auto Play var autoPlayVar = parseInt($ts.attr('data-autoplay'), 10); // Auto Play Time Out var autoplaySpdVar = 3000; if (autoPlayVar > 1) { autoplaySpdVar = autoPlayVar; autoPlayVar = 1; } // Slide Change Speed var speedVar = parseInt($ts.attr('data-speed'), 10); // Slider Loop var loopVar = Boolean(parseInt($ts.attr('data-loop'), 10)); // Slider Center var centerVar = Boolean(parseInt($ts.attr('data-center'), 10)); // Variable Width var variableWidthVar = Boolean( parseInt($ts.attr('data-variable-width'), 10), ); // Pagination var paginaiton = $(this) .find('.cs_pagination') .hasClass('cs_pagination'); // Slide Per View var slidesPerView = $ts.attr('data-slides-per-view'); if (slidesPerView == 1) { slidesPerView = 1; } if (slidesPerView == 'responsive') { var slidesPerView = parseInt($ts.attr('data-add-slides'), 10); var lgPoint = parseInt($ts.attr('data-lg-slides'), 10); var mdPoint = parseInt($ts.attr('data-md-slides'), 10); var smPoint = parseInt($ts.attr('data-sm-slides'), 10); var xsPoing = parseInt($ts.attr('data-xs-slides'), 10); } // Fade Slider var fadeVar = parseInt($($ts).attr('data-fade-slide')); fadeVar === 1 ? (fadeVar = true) : (fadeVar = false); // Slick Active Code $slickActive.slick({ autoplay: autoPlayVar, dots: paginaiton, centerPadding: '28%', speed: speedVar, infinite: loopVar, autoplaySpeed: autoplaySpdVar, centerMode: centerVar, fade: fadeVar, prevArrow: $(this).find('.cs_left_arrow'), nextArrow: $(this).find('.cs_right_arrow'), appendDots: $(this).find('.cs_pagination'), slidesToShow: slidesPerView, variableWidth: variableWidthVar, swipeToSlide: true, responsive: [ { breakpoint: 1600, settings: { slidesToShow: lgPoint, }, }, { breakpoint: 1200, settings: { slidesToShow: mdPoint, }, }, { breakpoint: 992, settings: { slidesToShow: smPoint, }, }, { breakpoint: 768, settings: { slidesToShow: xsPoing, slidesToScroll: xsPoing, }, }, ], }); }); } } /*-------------------------------------------------------------- 6. Horizonta Full Screen Swiper Slider --------------------------------------------------------------*/ function fullScreenHorizontalSlider() { if ($.exists('.cs_fullscreen_horizontal_slider')) { var swiper = new Swiper('.cs_fullscreen_horizontal_slider', { mousewheel: true, loop: true, speed: 1000, pagination: { el: '.cs_swiper_pagination', clickable: true, }, }); } } /*-------------------------------------------------------------- 7. Vertical Full Screen Swiper Slider --------------------------------------------------------------*/ function fullScreenVerticalSlider() { if ($.exists('.cs_fullscreen_vertical_slider')) { var swiper = new Swiper('.cs_fullscreen_vertical_slider', { direction: 'vertical', mousewheel: true, loop: true, speed: 1000, pagination: { el: '.cs_swiper_pagination', type: 'fraction', }, navigation: { nextEl: '.cs_swiper_button_next', prevEl: '.cs_swiper_button_prev', }, }); } } /*-------------------------------------------------------------- 8. Parallax Swiper Slider --------------------------------------------------------------*/ function parallaxSwiperSlider() { if ($.exists('.cs_parallax_slider')) { let mainSliderSelector = '.cs_parallax_slider', interleaveOffset = 0.5; let mainSliderOptions = { loop: true, speed: 1000, autoplay: false, loopAdditionalSlides: 10, grabCursor: true, watchSlidesProgress: true, navigation: false, pagination: { el: '.cs_swiper_pagination_2', clickable: true, renderBullet: function (index, className) { return '' + (index + 1) + ''; }, }, on: { init: function () { this.autoplay.stop(); }, imagesReady: function () { this.el.classList.remove('loading'); this.autoplay.start(); }, progress: function (swiper) { for (let i = 0; i < swiper.slides.length; i++) { let slideProgress = swiper.slides[i].progress, innerOffset = swiper.width * interleaveOffset, innerTranslate = slideProgress * innerOffset; swiper.slides[i].querySelector( '.cs_swiper_parallax_bg', ).style.transform = 'translateX(' + innerTranslate + 'px)'; } }, touchStart: function (swiper) { for (let i = 0; i < swiper.slides.length; i++) { swiper.slides[i].style.transition = ''; } }, setTransition: function (swiper, transition) { for (let i = 0; i < swiper.slides.length; i++) { swiper.slides[i].style.transition = transition + 'ms'; swiper.slides[i].querySelector( '.cs_swiper_parallax_bg', ).style.transition = transition + 'ms'; } }, }, }; let mainSlider = new Swiper(mainSliderSelector, mainSliderOptions); } } /*-------------------------------------------------------------- 9. Modal Video --------------------------------------------------------------*/ function modalVideo() { if ($.exists('.cs_video_open')) { $('body').append(`
'); $('.menu-item-has-children').append( '