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
506 lines
12 KiB
4 months ago
|
/***************************************************
|
||
|
==================== 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);
|