1/*===============stiky-header===============*/ 2$(window).scroll(function () { 3 if ($(window).scrollTop() > 0) { 4 $('.header-area').addClass('header-active'); 5 } 6 else { 7 $('.header-area').removeClass('header-active'); 8 } 9}); 10/*===============mobile-menu===============*/ 11$(".menu-btn").click(function () { 12 $(this).toggleClass('active'); 13 $("body").toggleClass('overflow-hidden'); 14 $(".mobile-menu").toggleClass('mobile-menu-active'); 15 $(".mobile-menu li").toggleClass('active'); 16 $(".body-overlay").toggleClass('body-overlay-active'); 17}); 18$(".body-overlay").click(function () { 19 $(this).removeClass('body-overlay-active'); 20 $("body").removeClass('overflow-hidden'); 21 $(".mobile-menu").removeClass('mobile-menu-active'); 22 $(".mobile-menu li").removeClass('active'); 23 $(".menu-btn").removeClass('active'); 24}); 25/*===============Home-Banner-Sec===============*/ 26$(document).ready(function () { 27 var slideCount = $('.home-banner-sec .swiper-slide').length; 28 var loopSetting = slideCount > 1; 29 var swiper = new Swiper('.home-banner-sec .swiper', { 30 slidesPerView: 1, 31 effect: 'fade', 32 loop: loopSetting, 33 autoplay: { 34 delay: 3000, 35 disableOnInteraction: false, 36 }, 37 }); 38}); 39// --------- Home About Slider --------- // 40var swiper = new Swiper(".home-about-slider .swiper", { 41 slidesPerView: 1, 42 spaceBetween: 16, 43 loop: false, 44 centeredSlides: false, 45 autoplay: true, 46 speed: 1000, 47 breakpoints: { 48 320: { 49 slidesPerView: 1, 50 autoplay: false, 51 grid: { 52 rows: 2, 53 fill: "row" 54 }, 55 direction: "horizontal", 56 spaceBetween: 8 57 }, 58 992: { 59 slidesPerView: 4, 60 grid: { 61 rows: 1 62 }, 63 direction: "horizontal", 64 spaceBetween: 12, 65 } 66 } 67}); 68// --------- Why Choose Slider --------- // 69var swiper = new Swiper(".why-choose-slider .swiper", { 70 slidesPerView: 1, 71 spaceBetween: 16, 72 loop: false, 73 centeredSlides: false, 74 autoplay: false, 75 speed: 1000, 76 navigation: { 77 nextEl: '.why-choose-wrap .swiper-button-next', 78 prevEl: '.why-choose-wrap .swiper-button-prev', 79 }, 80 breakpoints: { 81 320: { 82 slidesPerView: 1, 83 grid: { 84 rows: 2, 85 fill: "row" 86 }, 87 direction: "horizontal", 88 spaceBetween: 10 89 }, 90 992: { 91 slidesPerView: 2, 92 grid: { 93 rows: 1 94 }, 95 direction: "horizontal", 96 spaceBetween: 30, 97 }, 98 1200: { 99 slidesPerView: 3, 100 grid: { 101 rows: 1 102 }, 103 direction: "horizontal", 104 spaceBetween: 30, 105 } 106 } 107}); 108/*===============common-button-border-fill-effect===============*/ 109// $(function () { 110// $('.common-btn, .common-arrow , .menu-btn').each(function () { 111// const $btn = $(this); 112// const $svg = $btn.find('svg'); 113// const $rect = $btn.find('rect')[0]; 114// if (!$rect) return; 115// const update = () => { 116// if (!document.body.contains($rect) || $($rect).css('display') === 'none') return; 117// try { 118// const w = $btn.outerWidth(); 119// const h = $btn.outerHeight(); 120// const len = $rect.getTotalLength(); 121// $svg.attr('viewBox', `0 0 ${w} ${h}`); 122// $($rect).attr({ 123// width: w - 2, 124// height: h - 2, 125// rx: h / 2 - 1, 126// ry: h / 2 - 1 127// }); 128// gsap.set($rect, { 129// strokeDasharray: len, 130// strokeDashoffset: len 131// }); 132// $btn.off('mouseenter mouseleave').hover( 133// () => gsap.to($rect, { strokeDashoffset: 0, duration: 1.2 }), 134// () => gsap.to($rect, { strokeDashoffset: len, duration: 1.2 }) 135// ); 136// } catch (e) { 137// console.warn("SVG element not ready or visible yet:", e); 138// } 139// }; 140// setTimeout(update, 100); 141// $(window).on('resize', update); 142// if (window.ResizeObserver) { 143// new ResizeObserver(update).observe($btn[0]); 144// } 145// }); 146// }); 147$(function () { 148 $('.common-btn, .common-arrow, .menu-btn').each(function () { 149 const $btn = $(this); 150 const $svg = $btn.find('svg'); 151 const rect = $btn.find('rect')[0]; 152 if (!rect || !$svg.length) return; 153 const update = () => { 154 if (!document.body.contains(rect)) return; 155 if (!$btn.is(':visible')) return; 156 const w = $btn.outerWidth(); 157 const h = $btn.outerHeight(); 158 if (w <= 0 || h <= 0) return; 159 const rectW = Math.max(1, w - 2); 160 const rectH = Math.max(1, h - 2); 161 const radius = Math.max(0, h / 2 - 1); 162 $svg.attr('viewBox', `0 0 ${w} ${h}`); 163 $(rect).attr({ 164 width: rectW, 165 height: rectH, 166 rx: radius, 167 ry: radius 168 }); 169 const len = rect.getTotalLength(); 170 gsap.set(rect, { 171 strokeDasharray: len, 172 strokeDashoffset: len 173 }); 174 $btn.off('mouseenter mouseleave').hover( 175 () => gsap.to(rect, { strokeDashoffset: 0, duration: 1.2 }), 176 () => gsap.to(rect, { strokeDashoffset: len, duration: 1.2 }) 177 ); 178 }; 179 180 setTimeout(update, 150); 181 $(window).on('resize', update); 182 if (window.ResizeObserver) { 183 new ResizeObserver(update).observe($btn[0]); 184 } 185 }); 186}); 187// Home Gallery Move // 188// $(window).on("load", function () { 189// gsap.registerPlugin(ScrollTrigger); 190// ScrollTrigger.config({ ignoreMobileResize: true }); 191// function setupMarquee($row, dir) { 192// const html = $row.html(); 193// const repeat = 0; 194// for (let i = 1; i < repeat; i++) $row.append(html); 195// let x = 0; 196// let width = 0; 197// function calculate() { 198// width = $row[0].scrollWidth / repeat; 199// } 200// calculate(); 201// requestAnimationFrame(calculate); 202// ScrollTrigger.create({ 203// trigger: ".home-gallery-wrap", 204// start: "top bottom", 205// end: "bottom top", 206// onEnter: calculate, 207// onEnterBack: calculate, 208// onRefresh: calculate, 209// onUpdate: self => { 210// const v = self.getVelocity() / 200; 211// x += (dir === "rtl" ? -v : v); 212// if (x <= -width) x += width; 213// if (x >= 0) x -= width; 214// gsap.set($row, { x }); 215// } 216// }); 217// } 218// $(".right-to-left").each((_, el) => setupMarquee($(el), "ltr")); 219// $(".left-to-right").each((_, el) => setupMarquee($(el), "rtl")); 220// ScrollTrigger.refresh(); 221// }); 222 223// Home Gallery Move // 224$(window).on("load", function () { 225 gsap.registerPlugin(ScrollTrigger); 226 ScrollTrigger.config({ ignoreMobileResize: true }); 227 function setupMarquee($row, dir) { 228 let x = 0; 229 let width = $row[0].scrollWidth - $row.parent().width(); 230 ScrollTrigger.create({ 231 trigger: ".home-gallery-wrap", 232 start: "top bottom", 233 end: "bottom top", 234 onUpdate: self => { 235 const v = self.getVelocity() / 200; 236 x += (dir === "rtl" ? -v : v); 237 x = Math.max(-width, Math.min(0, x)); 238 gsap.set($row, { x }); 239 } 240 }); 241 } 242 $(".right-to-left").each((_, el) => setupMarquee($(el), "ltr")); 243 $(".left-to-right").each((_, el) => setupMarquee($(el), "rtl")); 244 ScrollTrigger.refresh(); 245}); 246 247/*==========usp-marquee==========*/ 248$(document).ready(function () { 249 if ($(".usp-marquee-sec").length) { 250 var $marqueeWrap = $(".usp-marquee-wrap"); 251 var listItems = $marqueeWrap.html(); 252 var repeatCount = 5; 253 for (var i = 1; i < repeatCount; i++) { 254 $marqueeWrap.append(listItems); 255 } 256 var marqueeAnimation = gsap.to($marqueeWrap, { 257 xPercent: -100 / repeatCount, 258 duration: 25, 259 ease: "linear", 260 repeat: -1 261 }); 262 $marqueeWrap.on("mouseenter", function () { 263 marqueeAnimation.pause(); 264 }); 265 $marqueeWrap.on("mouseleave", function () { 266 marqueeAnimation.resume(); 267 }); 268 } 269}); 270// Ft Marqu // 271$(document).ready(function () { 272 if ($(".ft-marque").length) { 273 var $marqueeWrap = $(".ft-usp-marquee"); 274 var listItems = $marqueeWrap.html(); 275 var repeatCount = 5; 276 for (var i = 1; i < repeatCount; i++) { 277 $marqueeWrap.append(listItems); 278 } 279 var marqueeAnimation = gsap.to($marqueeWrap, { 280 xPercent: -100 / repeatCount, 281 duration: 25, 282 ease: "linear", 283 repeat: -1 284 }); 285 $marqueeWrap.on("mouseenter", function () { 286 marqueeAnimation.pause(); 287 }); 288 $marqueeWrap.on("mouseleave", function () { 289 marqueeAnimation.resume(); 290 }); 291 } 292}); 293// Over Ons // 294let SwiperTop = new Swiper('.over-ons-slider .swiper', { 295 spaceBetween: 10, 296 centeredSlides: true, 297 speed: 6000, 298 autoplay: { 299 delay: 1, 300 }, 301 loop: true, 302 slidesPerView:'auto', 303 allowTouchMove: false, 304 disableOnInteraction: true, 305 breakpoints: { 306 320: { 307 slidesPerView: 1.8, 308 spaceBetween: 10, 309 centeredSlides: true, 310 loop: true, 311 }, 312 992: { 313 slidesPerView: 2.5, 314 spaceBetween: 13, 315 }, 316 1200: { 317 slidesPerView: 2.5, 318 spaceBetween: 37, 319 }, 320 }, 321}); 322// Home Blos Slider // 323var swiper = new Swiper('.home-blog-slider .swiper', { 324 slidesPerView: 1, 325 spaceBetween: 16, 326 loop: false, 327 centeredSlides: false, 328 autoplay: false, 329 speed: 1000, 330 breakpoints: { 331 320: { 332 slidesPerView: 1.1, 333 spaceBetween: 10, 334 centeredSlides: true, 335 loop: true, 336 }, 337 992: { 338 slidesPerView: 2, 339 spaceBetween: 13, 340 }, 341 1200: { 342 slidesPerView: 3, 343 spaceBetween: 63, 344 345 }, 346 }, 347}); 348/*==========counter with all special character===========*/ 349$(document).ready(function () { 350 function animateCounter($countElement) { 351 let text = $countElement.text().trim(); 352 let nums = [...text.matchAll(/\d+(\.\d+)?/g)]; 353 if (!nums.length) return; 354 let template = text;
355 nums.forEach((m,i)=> template = template.replace(m[0], `__${i}__`)); 356 let cur = nums.map(()=>0), dec = nums.map(m=> (m[0].includes('.')? m[0].split('.')[1].length:0)); 357 let target = {}; nums.forEach((m,i)=> target['n'+i] = parseFloat(m[0])); 358 function render(){ 359 $countElement.text(template.replace(/__(\d+)__/g, (_,i)=> dec[i]?cur[i].toFixed(dec[i]):Math.floor(cur[i]))); 360 } 361 $({}).animate(target,{ 362 duration:2000,easing:'linear', 363 step:(now,fx)=>{ let i=fx.prop.slice(1); cur[i]=now; render(); }, 364 complete:()=> $countElement.text(text) 365 }); 366 } 367 $(window).on('scroll', function(){ 368 $('.each-counter').each(function(){ 369 let $box=$(this); 370 if($box.hasClass('counted')) return; 371 if($box.offset().top < $(window).scrollTop()+$(window).height()-50){ 372 $box.addClass('counted'); 373 animateCounter($box.find('h2')); 374 } 375 }); 376 }); 377}); 378/*==========Position Change Jquery============*/ 379$(window).on("load resize",function(e){ 380 if ($(window).width() < 992) { 381 $('.home-service-btn').insertAfter(".home-service-btn-lg"); 382 $('.why-slider-btn').insertAfter(".why-slider-btn-lg"); 383 $('.ft-social-icons').insertAfter(".ft-logo"); 384 } 385 else { 386 $('.home-service-btn').insertAfter(".home-service-btn-mb"); 387 $('.why-slider-btn').insertAfter(".why-slider-btn-mb"); 388 $('.ft-social-icons').insertAfter(".ft-menu-contact"); 389 $('.ft-social-icons').insertAfter(".ft-menu-contact"); 390 } 391}); 392$(window).on("load resize",function(e){ 393 if ($(window).width() < 320 ) { 394 $('.home-gallery-wrap').insertAfter(".home-banner-heading"); 395 } 396 else { 397 $('.home-gallery-wrap').insertAfter(".home-banner-heading"); 398 } 399}); 400/*===============custom-accordion===============*/ 401$(document).ready(function () { 402 var slie_time = 300; // set slide time; 403 $('.acc-block .show_accordian>*:not(:first-child)').show() 404 $('.acc-block li > *:first-child').click(function () { 405 var accro_parent = $(this).parent(); 406 var accro_content = accro_parent.children(':not(:first-child)'); 407 if (accro_parent.hasClass("show_accordian")) { 408 accro_parent.removeClass("show_accordian"); 409 accro_content.stop().slideUp(slie_time); 410 } else { 411 accro_parent.siblings().removeClass("show_accordian").children(':not(:first-child)').stop().slideUp(slie_time); 412 accro_parent.addClass("show_accordian"); 413 accro_content.stop().slideDown(slie_time); 414 } 415 }); 416}) 417/*===============vacature-dtl-slider===============*/ 418var swiper = new Swiper('.vacature-dtl-slider .swiper', { 419 slidesPerView: 1, 420 spaceBetween: 15, 421 loop: false, 422 speed: 1500, 423 autoplay: { 424 delay: 5000, 425 disableOnInteraction: false, 426 }, 427 breakpoints: { 428 320: { 429 slidesPerView: 1, 430 spaceBetween: 10, 431 }, 432 768: { 433 slidesPerView: 1, 434 spaceBetween: 15, 435 }, 436 992: { 437 slidesPerView: 2, 438 spaceBetween: 15, 439 }, 440 1400: { 441 slidesPerView: 3, 442 spaceBetween: 15, 443 }, 444 }, 445}); 446/*=================plan-kennismaking-popup====================*/ 447$(".header-popup").click(function () { 448 $(".header-step-form").addClass('step-form-active'); 449 $(".body-blur").addClass('body-blur-active'); 450}); 451$(".step-form-close").click(function () { 452 $(".header-step-form").removeClass('step-form-active'); 453 $(".body-blur").removeClass('body-blur-active'); 454}); 455$(".body-blur").click(function () { 456 $(".header-step-form").removeClass('step-form-active'); 457 $(this).removeClass('body-blur-active'); 458}); 459// Custome Line Draw // 460// For H1 // 461$(document).ready(function () { 462 const svgPath = ` 463 <svg viewBox="0 0 259 89" fill="none" xmlns="http://www.w3.org/2000/svg" class="round-svg" preserveAspectRatio="none"> 464 <path d="M137.341 87.0447C99.1984 87.0818 60.4263 83.37 25.5655 71.2043 465 C14.3845 67.2976 2.31071 60.9596 1.53697 51.3552 466 C0.984299 44.4046 6.73206 38.1316 13.1346 33.3247 467 C26.9344 22.9686 44.6964 16.4636 62.7903 11.731 468 C97.5488 2.64621 134.799 -0.453177 171.208 2.69263 469 C193.638 4.63207 216.093 9.03064 235.428 18.1804 470 C246.43 23.3862 257.135 31.4224 257.229 41.5187 471 C257.28 47.5598 253.36 53.3131 247.876 57.5354
472 C242.392 61.7576 235.453 64.625 228.396 66.9913 473 C196.503 77.663 161.038 79.092 126.415 80.3819" 474 /> 475 </svg>`; 476 $('h1 em , h3 em').append(svgPath); 477 478 function adjustSvg() { 479 $('h1 em , h3 em').each(function () { 480 const $em = $(this); 481 const $svg = $em.find('.round-svg'); 482 if (!$svg.length) return; 483 const w = $em.outerWidth(); 484 const h = $em.outerHeight(); 485 $svg.css({ 486 width: w + 'px', 487 height: h + 'px', 488 bottom: -(h * 0.35) + 'px' 489 }); 490 }); 491 } 492 adjustSvg(); 493 $(window).on('resize', adjustSvg); 494 495 gsap.registerPlugin(ScrollTrigger); 496 $('section').each(function () { 497 const $section = $(this); 498 const ems = $section.find('h1 em , h3 em'); 499 if (!ems.length) return; 500 501 ScrollTrigger.create({ 502 trigger: this, 503 start: 'top 70%', 504 once: true, 505 onEnter: () => { 506 ems.each(function () { 507 $(this).addClass('em-animate'); 508 }); 509 } 510 }); 511 }); 512}); 513// For H2 // 514$(document).ready(function () { 515 const svgPath = ` 516 <svg width="362" height="24" viewBox="0 0 362 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="underline-svg"> 517 <g clip-path="url(#clip0_3136_953)"> 518 <g clip-path="url(#clip1_3136_953)"> 519 <path class="st-line" d="M2.73796 16.2038C121.055 8.71683 240.224 4.74429 359.437 4.31482" stroke="#124D3F" stroke-width="2.6699" stroke-linecap="round" stroke-linejoin="round"/> 520 <path class="nd-line" d="M69.232 20.62C146.303 16.9767 223.725 15.2804 301.115 15.5309" stroke="#124D3F" stroke-width="2.6699" stroke-linecap="round" stroke-linejoin="round"/> 521 </g> 522 </g> 523 <defs> 524 <clipPath id="clip0_3136_953"> 525 <rect width="361.527" height="23.5385" fill="white"/> 526 </clipPath> 527 <clipPath id="clip1_3136_953"> 528 <rect width="360.97" height="21.3592" fill="white" transform="translate(0.60199 2.1792)"/> 529 </clipPath> 530 </defs> 531 </svg> 532 `; 533 $('h2').append(svgPath); 534}); 535$(document).ready(function () { 536gsap.registerPlugin(ScrollTrigger); 537document.querySelectorAll('section').forEach(section => { 538 const ems = section.querySelectorAll('h2'); 539 if (!ems.length) return; 540 ScrollTrigger.create({ 541 trigger: section, 542 start: 'top 70%', 543 once: true, 544 onEnter: () => { 545 ems.forEach(em => em.classList.add('h2-animate')); 546 } 547 }); 548}); 549}); 550/*===============introductie-tiktok-block-height-equal===============*/ 551function setEqualHeight() { 552 var windowWidth = $(window).width(); 553 if (windowWidth < 320) { 554 $('.each-introductie-tiktok-block-info').css('height', 'auto'); 555 } else { 556 var highestBox = 0; 557 $('.each-introductie-tiktok-block-info').css('height', 'auto'); 558 $('.each-introductie-tiktok-block-info').each(function () { 559 highestBox = Math.max(highestBox, $(this).height()); 560 }); 561 $('.each-introductie-tiktok-block-info').height(highestBox); 562 } 563} 564$(document).ready(function () { 565 setEqualHeight(); 566}); 567$(window).on('load resize', function () { 568 setEqualHeight(); 569}); 570/*===============social-media-slider===============*/ 571var swiper = new Swiper('.social-media-slider .swiper', { 572 slidesPerView: 1, 573 spaceBetween: 15, 574 loop: false, 575 speed: 1500, 576 autoHeight: true, 577 autoplay: { 578 delay: 5000, 579 disableOnInteraction: false, 580 }, 581 breakpoints: { 582 320: { 583 slidesPerView: 1.1, 584 spaceBetween: 10, 585 loop: true, 586 centeredSlides: true, 587 }, 588 768: { 589 slidesPerView: 2.2, 590 spaceBetween: 18, 591 loop: true, 592 centeredSlides: true, 593 }, 594 992: { 595 slidesPerView: 2, 596 spaceBetween: 20, 597 }, 598 1200: { 599 slidesPerView: 3, 600 spaceBetween: 25, 601 }, 602 1400: { 603 slidesPerView: 4, 604 spaceBetween: 37, 605 }, 606 }, 607}); 608 609 610$(".master-btn").click(function () { 611 $(".masterclass-form").addClass('step-form-active'); 612 $(".body-blur").addClass('body-blur-active'); 613}); 614$(".step-form-close").click(function () { 615 $(".masterclass-form").removeClass('step-form-active'); 616 $(".body-blur").removeClass('body-blur-active'); 617}); 618$(".body-blur").click(function () { 619 $(".masterclass-form").removeClass('step-form-active'); 620 $(this).removeClass('body-blur-active'); 621}); 622 623 624// -------- top-logo-wrap --------// 625const items = document.querySelectorAll(".top-logo-wrap ul li"); 626const total = items.length;
627items.forEach((el, index) => { 628 el.style.zIndex = total - index; 629});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.