
Ideal for
EVERY JOURNEY
(function () {
function resolveWithin(sliderEl, sel) {
// 1) inside the slider
let el = sliderEl.querySelector(sel);
if (el) return el;
// 2) inside the immediate parent (common Webflow pattern: controls as siblings)
const parent = sliderEl.parentElement;
if (parent) {
el = parent.querySelector(sel);
if (el) return el;
}
// 3) optional higher wrapper if you use one (totally optional)
const wrapper = sliderEl.closest('[data-swiper-root]');
if (wrapper) {
el = wrapper.querySelector(sel);
if (el) return el;
}
return null; // let Swiper handle nulls gracefully
}
function initAll() {
document.querySelectorAll('.swiper.service-slider').forEach(function (sliderEl) {
if (sliderEl.__swiperInited) return; // avoid double init on Webflow redraws
sliderEl.__swiperInited = true;
const nextEl = resolveWithin(sliderEl, '[data-swiper-arrow="next"]');
const prevEl = resolveWithin(sliderEl, '[data-swiper-arrow="prev"]');
const paginationEl = resolveWithin(sliderEl, '.swiper-pagination'); // no extra class — per-instance element
const scrollbarEl = resolveWithin(sliderEl, '.swiper-progressbar');
new Swiper(sliderEl, {
speed: 400,
slidesPerView: 'auto',
spaceBetween: 0,
loop: true,
autoplay: {
delay: 3000,
disableOnInteraction: false,
pauseOnMouseEnter: true
},
navigation: {
nextEl: nextEl,
prevEl: prevEl,
disabledClass: 'is-disabled',
},
pagination: {
el: paginationEl,
clickable: true,
dynamicBullets: true,
dynamicMainBullets: 5,
},
scrollbar: {
el: scrollbarEl,
draggable: true,
},
});
});
}
// Run after Webflow and on DOM ready (covers Designer/Interactions redraws too)
window.Webflow = window.Webflow || [];
window.Webflow.push(initAll);
document.addEventListener('DOMContentLoaded', initAll);
})();
“Chartering a private jet with Energetic Exotics was the seamless, stress-free luxury experience we needed. From instant confirmations to the chef’s gourmet omelets at 40,000 feet—absolute perfection!”
Richard Emerson
CEO of NovaTech Solutions
(function () {
function resolveWithin(sliderEl, selector) {
// First check within the slider element
var el = sliderEl.querySelector(selector);
if (el) return el;
// Check parent
var parent = sliderEl.parentElement;
if (parent) {
el = parent.querySelector(selector);
if (el) return el;
}
// Check for wrapper with data attribute
var wrapper = typeof sliderEl.closest === 'function'
? sliderEl.closest('[data-swiper-root]')
: null;
if (wrapper) {
el = wrapper.querySelector(selector);
if (el) return el;
}
// Check grandparent
var grandParent = parent ? parent.parentElement : null;
if (grandParent) {
el = grandParent.querySelector(selector);
if (el) return el;
}
return null;
}
function initAll() {
var sliders = document.querySelectorAll('.swiper.is-testimonial');
sliders.forEach(function (sliderEl) {
// Prevent double initialization
if (sliderEl.__swiperInited) return;
sliderEl.__swiperInited = true;
var slides = sliderEl.querySelectorAll('.swiper-slide.is-testimonial');
var slideCount = slides ? slides.length : 0;
// Find navigation elements
var nextEl = resolveWithin(sliderEl, '[data-swiper-arrow="next"]');
var prevEl = resolveWithin(sliderEl, '[data-swiper-arrow="prev"]');
// Find pagination element - try both selectors
var paginationEl = resolveWithin(sliderEl, '.swiper-pagination.is-testimonial')
|| resolveWithin(sliderEl, '.swiper-pagination')
|| resolveWithin(sliderEl, '.swiper_bullets');
console.log('Swiper Init:', {
slideCount: slideCount,
nextEl: nextEl,
prevEl: prevEl,
paginationEl: paginationEl
});
// Hide controls if only 0 or 1 slide
if (slideCount === 0 || slideCount === 1) {
if (nextEl) nextEl.style.display = 'none';
if (prevEl) prevEl.style.display = 'none';
if (paginationEl) paginationEl.style.display = 'none';
return;
}
// Initialize Swiper
var swiperInstance = new Swiper(sliderEl, {
speed: 1000,
effect: 'fade',
fadeEffect: { crossFade: true },
slidesPerView: 1,
spaceBetween: 0,
navigation: nextEl && prevEl ? {
nextEl: nextEl,
prevEl: prevEl,
disabledClass: 'is-disabled'
} : false,
pagination: paginationEl ? {
el: paginationEl,
clickable: true,
dynamicBullets: true,
dynamicMainBullets: 5
} : false
});
console.log('Swiper initialized:', swiperInstance);
});
}
// Multiple init strategies to ensure it runs
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initAll);
} else {
initAll();
}
// Also hook into Webflow if available
if (window.Webflow) {
window.Webflow.push(initAll);
}
})();
Not sure which jet you should choose?
We Help You Book Your Jet Charter
Complete the brief inquiry form below, and one of our private jet experts will reach out within one business hour with tailored recommendations, competitive pricing, and all you need to elevate your next flight. Your sky-high adventure begins here—fly first class at every altitude.H
Thanks for submitting the form.
.webp)







