You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

506 lines
12 KiB

/***************************************************
==================== JS INDEX ======================
****************************************************
01. Preloader
02. Go top Top
03. Offcanvas Menu Control
04. Header Search
05. Header | Home One
06. Header | Home Two
07. Counter Activation
08. Testimonial Slider | Home 1
09. Testimonial Slider | Home 2
10. Team Slider
11. MixitUp activation
12. WOW JS Activation
13. Mobile Menu Activation
14. ProgressBar activation
15. Banner Slider
****************************************************/
(function ($) {
"use strict";
/////////////////////////////////////////////////////
// 01. Preloader
var preloader = document.querySelector("#preloader");
var get_body = document.querySelector("body");
get_body.onload = function () {
preloader.style.display = "none";
};
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
// 02. Go top Top
let scroll_top = document.getElementById("scroll_top");
if (scroll_top) {
window.onscroll = function () { scrollTopFunc() };
function scrollTopFunc() {
if (document.body.scrollTop > 100 || document.documentElement.scrollTop > 100) {
scroll_top.classList.add('showed');
} else {
scroll_top.classList.remove('showed');
}
}
scroll_top.addEventListener('click', function () {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
});
}
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
// 03. Offcanvas Menu Control
$('.menu_icon').on('click', function () {
$('.offcanvas__area').addClass('showed');
});
$('#offcanvas_close').on('click', function () {
$('.offcanvas__area').removeClass('showed');
});
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
// 04. Header Search
$('.search-icon').on('click', function () {
$(this).hide();
$('.search-close').show();
$('.search__form').addClass('showed');
});
$('.search-close').on('click', function () {
$(this).hide();
$('.search-icon').show();
$('.search__form').removeClass('showed');
});
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
// 06.
var share_btn = document.querySelectorAll('.share-btn');
var social_share = document.querySelectorAll('.social-share');
for (let i = 0; i < share_btn.length; i++) {
share_btn[i].addEventListener('click', function () {
social_share[i].classList.toggle('active');
});
}
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
// 06. Magnific Popup Activate
$('.popup-link').magnificPopup({ type: 'iframe' });
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
// 07. Counter Activation
const counter_1 = window.counterUp.default
const counter_cb = entries => {
entries.forEach(entry => {
const el = entry.target
if (entry.isIntersecting && !el.classList.contains('is-visible')) {
counter_1(el, {
duration: 1500,
delay: 16,
})
el.classList.add('is-visible')
}
})
}
const counter_1_io = new IntersectionObserver(counter_cb, {
threshold: 1
})
const counter_1_els = document.querySelectorAll('.counter_fast');
counter_1_els.forEach((el) => {
counter_1_io.observe(el)
});
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
// 07. Counter Activation
const counter_2 = window.counterUp.default
const counter_cb_2 = entries => {
entries.forEach(entry => {
const el = entry.target
if (entry.isIntersecting && !el.classList.contains('is-visible')) {
counter_2(el, {
duration: 3000,
delay: 16,
})
el.classList.add('is-visible')
}
})
}
const counter_2_io = new IntersectionObserver(counter_cb_2, {
threshold: 1
})
const counter_2_els = document.querySelectorAll('.counter_medium');
counter_2_els.forEach((el) => {
counter_2_io.observe(el)
});
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
// 07. Counter Activation
const counter_3 = window.counterUp.default
const counter_cb_3 = entries => {
entries.forEach(entry => {
const el = entry.target
if (entry.isIntersecting && !el.classList.contains('is-visible')) {
counter_3(el, {
duration: 5000,
delay: 16,
})
el.classList.add('is-visible')
}
})
}
const counter_3_io = new IntersectionObserver(counter_cb_3, {
threshold: 1
})
const counter_3_els = document.querySelectorAll('.counter_slow');
counter_3_els.forEach((el) => {
counter_3_io.observe(el)
});
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
// Progress Bar Activate
$('.skill_active').progressBar({
height: "10",
animation: true,
barColor: "#B69974",
});
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
AOS.init({
once: true,
offset: 200,
duration: 1000,
});
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
// 10. Text Slider
var text_slider = new Swiper(".textslider__active", {
loop: true,
speed: 7000,
spaceBetween: 0,
autoplay: {
delay: 1,
},
breakpoints: {
640: {
slidesPerView: 1,
},
768: {
slidesPerView: 2,
},
1024: {
slidesPerView: 4,
},
},
});
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
// 15. Text Slider
var text_slider_2 = new Swiper(".textslider__active-2", {
loop: true,
speed: 3000,
spaceBetween: 30,
slidesPerView: 'auto',
autoplay: {
delay: 1,
},
});
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
// 10. Text Slider
var text_slider = new Swiper(".textslider__active-3", {
spaceBetween: 0,
centeredSlides: true,
speed: 7000,
autoplay: {
delay: 1,
reverseDirection: true
},
loop: true,
loopedSlides: 4,
slidesPerView:'auto',
allowTouchMove: false,
disableOnInteraction: true,
breakpoints: {
640: {
slidesPerView: 1,
},
768: {
slidesPerView: 2,
},
1024: {
slidesPerView: 4,
},
},
});
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
// 15. Text Slider down
var text_slider_2 = new Swiper(".textslider__down-2", {
loop: true,
speed: 3000,
spaceBetween: 30,
autoplay: {
delay: 1,
},
breakpoints: {
640: {
slidesPerView: 1,
},
768: {
slidesPerView: 2,
},
1024: {
slidesPerView: 2,
},
1200: {
slidesPerView: 2,
},
},
});
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
// 11.
var brand_slider = new Swiper(".brand__slider", {
loop: true,
speed: 3000,
spaceBetween: 50,
autoplay: {
delay: 1,
},
breakpoints: {
640: {
slidesPerView: 1,
},
768: {
slidesPerView: 2,
},
1024: {
slidesPerView: 4,
},
1400: {
slidesPerView: 6,
},
},
});
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
// 12.
var testimonial_slider_3 = new Swiper(".testimonial__slider-3", {
loop: true,
speed: 3000,
spaceBetween: 50,
slidesPerView: 1,
autoplay: {
delay: 1500,
},
});
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
// 13. Mobile Menu Activation
$('.offcanvas-menu').meanmenu({
meanScreenWidth: "1365",
meanMenuContainer: '.offcanvas__menu',
meanMenuCloseSize: '24px',
});
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
// 14.
var team_slider_3 = new Swiper(".team__slider-3", {
loop: true,
speed: 3000,
spaceBetween: 30,
breakpoints: {
640: {
slidesPerView: 1,
},
768: {
slidesPerView: 2,
},
1000: {
slidesPerView: 3,
},
1300: {
slidesPerView: 4,
},
},
});
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
// 14.
var portfolio_slider_4 = new Swiper(".portfolio__slider-4", {
loop: true,
speed: 3000,
spaceBetween: 30,
breakpoints: {
640: {
slidesPerView: 1,
},
768: {
slidesPerView: 2,
},
1000: {
slidesPerView: 3,
},
1300: {
slidesPerView: 3,
},
},
});
/////////////////////////////////////////////////////
gsap.registerPlugin(ScrollTrigger, ScrollSmoother, TweenMax);
let device_width = window.innerWidth;
let skewSetter = gsap.quickTo(".portfolio__item-5 img", "skewY"),
clamp = gsap.utils.clamp(-15, 15);
const smoother = ScrollSmoother.create({
smooth: 1.35,
effects: device_width < 1025 ? false : true,
smoothTouch: false,
normalizeScroll: false,
ignoreMobileResize: true,
onUpdate: self => skewSetter(clamp(self.getVelocity() / -80)),
onStop: () => skewSetter(0)
});
// P Animation
let pAnimationLines = gsap.utils.toArray(".p-animation p");
pAnimationLines.forEach(pAnimationLine => {
const tl = gsap.timeline({
scrollTrigger: {
trigger: pAnimationLine,
start: 'top 90%',
duration: 2,
end: 'bottom 60%',
scrub: false,
markers: false,
toggleActions: 'play none none none'
}
});
const pSplitLine = new SplitText(pAnimationLine, { type: "lines" });
gsap.set(pAnimationLine, { perspective: 400 });
pSplitLine.split({ type: "lines" })
tl.from(pSplitLine.lines, {
duration: 1,
delay: 0.3,
opacity: 0,
x: 50,
force3D: true,
transformOrigin: "top center -50",
stagger: 0.1
});
});
// 25. Title Animation
let headingAnimationLines = gsap.utils.toArray(".heading-animation");
headingAnimationLines.forEach(headingAnimationLine => {
const tl = gsap.timeline({
scrollTrigger: {
trigger: headingAnimationLine,
start: 'top 90%',
end: 'bottom 60%',
scrub: false,
markers: false,
toggleActions: 'play none none none'
}
});
const headingSplitLine = new SplitText(headingAnimationLine, { type: "words" });
gsap.set(headingAnimationLine, { perspective: 400 });
headingSplitLine.split({ type: "words" })
tl.from(headingSplitLine.words, {
duration: 1,
delay: 0.3,
opacity: 0,
rotationX: -50,
force3D: true,
transformOrigin: "top center -50",
stagger: 0.1,
});
});
// Home 3 Hero shape animaton
let home3HeroShape = gsap.timeline();
home3HeroShape.from(".hero__title-3-wrap .line", {
xPercent: -100,
duration: 1,
}, '+=1');
if ($('#hero_video').length){
// Hero Video
var hero_video = document.querySelector('.hero__video');
var hero_video_icon = document.querySelector('#hero_video');
hero_video_icon.addEventListener('click', function(e) {
e.preventDefault();
hero_video.classList.toggle('show');
});
}
})(jQuery);