"Un nome, una garanzia. È stato tutto perfetto."
"L'isola ha superato le mie aspettative!"
"Posto stupendo! Un'esperienza straordinaria."
Emozioni intensificate. Relax assoluto. Possibilità infinite. Perfect Day CocoCay, la pluripremiata destinazione privata Royal Caribbean®, offre innumerevoli opportunità per vivere la tua vacanza al massimo. Scopri i sette tratti di spiaggia e la più grande piscina d'acqua dolce dei Caraibi.
Vivi avventure audaci nell'emozionante Thrill Waterpark®. La festa in spiaggia per eccellenza ti aspetta all'Hideaway Beach℠, riservato agli adulti. Oppure raggiungi uno stato di totale relax in una cabana sull'acqua al Coco Beach Club®. Tuffatevi a capofitto nell'avventura o rilassatevi completamente, trascorrendo una giornata su misura per voi e il vostro equipaggio.
Stanziati in uno dei quartieri più caratteristici dell'isola oppure fai un giro per immergerti in nuove atmosfere. Orientati con la nostra mappa dell'isola di CocoCay.
Stabilisci la tua base in uno dei quartieri distintivi dell'isola, ognuno dei quali ha un'atmosfera tanto memorabile quanto il tuo equipaggio di avventurieri.
Scopri gli itinerari che attualmente portano a CocoCay® e prenota oggi stesso la tua giornata perfetta alle Bahamas.
Prenditi una pausa dalla routine quotidiana e immergiti in nuovi ricordi con crociere di un weekend o di una settimana con sosta all'isola privata Perfect Day CocoCay.
.keen-slider__slide"
});
let slideSizes = [];
let currentHeight = 0;
const evenSlideElementHeights = (group) => {
const slides = group.querySelectorAll(".js-cabana-slide");
const sizes = {
header: 0,
listItems: []
};
Array.from(cabanaWrappers).forEach((wrapper, index) => {
wrapper.style.height = null;
const wrapperHeight = wrapper.clientHeight;
if (slideSizes[index] === void 0 || wrapperHeight > slideSizes[index]) {
slideSizes[index] = wrapperHeight;
}
const highestSlideSize = Math.max(...slideSizes);
const heightWithPadding = highestSlideSize + 84;
cabanaCarousel.style.height = `${heightWithPadding}px`;
currentHeight = heightWithPadding;
});
Array.from(slides).forEach((slide, index) => {
const header = slide.querySelector(".js-slide-header-wrapper");
header.style.height = null;
if (header.clientHeight > sizes.header) {
sizes.header = header.clientHeight;
}
const features = slide.querySelectorAll(".js-features-list > li");
Array.from(features).forEach((feature, featureIndex) => {
feature.style.height = null;
const featureHeight = feature.clientHeight;
if (sizes.listItems[featureIndex] === void 0 || featureHeight > sizes.listItems[featureIndex]) {
sizes.listItems[featureIndex] = featureHeight;
}
});
});
Array.from(slides).forEach((slide) => {
const header = slide.querySelector(".js-slide-header-wrapper");
header.style.height = `${sizes.header}px`;
const features = slide.querySelectorAll(".js-features-list li");
Array.from(features).forEach((feature, featureIndex) => {
feature.style.height = `${sizes.listItems[featureIndex]}px`;
});
});
};
Array.from(cabanaGroups).forEach((group) => {
const carousel = createCarousel(group, {
rubberband: false,
slides: {
perView: 1.1,
spacing: 24
},
breakpoints: {
[`(min-width: ${breakpointWidth}px)`]: {
slides: {
// if slides are more than 3, set perView to 3.1 else 3
perView: group.querySelectorAll(".js-cabana-slide").length > 3 ? 3.1 : 3,
spacing: 80
}
}
}
});
const navigationWrapper = group.querySelector(".js-carousel-navigation-wrapper");
window.addEventListener("resize", () => {
if (window.innerWidth < breakpointWidth) {
navigationWrapper.classList.remove("cabanaComparison__groupNavigation--hidden");
} else if (carousel.track.details.slides.length > 3 && window.innerWidth >= breakpointWidth) {
navigationWrapper.classList.remove("cabanaComparison__groupNavigation--hidden");
} else {
navigationWrapper.classList.add("cabanaComparison__groupNavigation--hidden");
}
});
window.addEventListener("resize", debounce(() => {
evenSlideElementHeights(group);
}, 400));
setTimeout(() => {
carousel.update();
parentCarousel.update();
window.dispatchEvent(new Event("resize"));
}, 200);
setTimeout(() => {
evenSlideElementHeights(group);
}, 1e3);
});
const setActiveSlide = (index) => {
const nextActiveButton = carouselButtons[index];
if (!nextActiveButton) {
return;
}
const activeSwitch = carouselSwitch.querySelector(".cabanaComparison__switch--active");
if (activeSwitch) {
activeSwitch.classList.remove("cabanaComparison__switch--active");
}
nextActiveButton.classList.add("cabanaComparison__switch--active");
const indicatorWidth = nextActiveButton.offsetWidth;
const indicatorOffset = nextActiveButton.offsetLeft;
carouselSwitch.style.setProperty("--indicator-width", `${indicatorWidth}px`);
carouselSwitch.style.setProperty("--indicator-offset", `${indicatorOffset}px`);
Array.from(cabanaGroups).forEach((group, groupIndex) => {
if (groupIndex === index) {
group.style.opacity = "1";
group.style.pointerEvents = "auto";
group.style.zIndex = "1";
group.classList.add("cabanaComparison__cabanasCarousel--active");
} else {
group.style.opacity = "0";
group.style.pointerEvents = "none";
group.style.zIndex = "0";
group.classList.remove("cabanaComparison__cabanasCarousel--active");
}
cabanaCarousel.style.height = `${currentHeight}px`;
if (groupIndex !== index) {
const allOpenAccordions = document.querySelectorAll(".js-feature-accordion[style]");
const allAccordionButtons = document.querySelectorAll(".js-feature-button");
allOpenAccordions.forEach((accordion) => {
accordion.removeAttribute("style");
});
allAccordionButtons.forEach((button) => {
button.classList.remove("cabanaComparison__featureButton--active");
});
}
});
};
Array.from(carouselButtons).forEach((button) => {
button.addEventListener("click", () => {
setActiveSlide(parseInt(button.dataset.index, 10));
});
});
setActiveSlide(0);
Array.from(featureCarouselButtons).forEach((button) => {
button.addEventListener("click", () => {
console.log("click");
const parentList = button.closest("li");
const parentListIndex = [...parentList.parentNode.children].indexOf(parentList);
const parent = button.closest(".js-carousel");
const slides = parent.querySelectorAll(".js-cabana-slide");
Array.from(slides).forEach((slide, index) => {
const accordionFeature = slide.querySelector(`.js-features-list > li:nth-child(${parentListIndex + 1})`);
const button2 = accordionFeature.querySelector(".js-feature-button");
const accordion = accordionFeature.querySelector(".js-feature-accordion");
const isAccordionOpen = accordion.hasAttribute("style");
if (accordion) {
accordionFeature.removeAttribute("style");
const accordion2 = accordionFeature.querySelector(".js-feature-accordion");
if (!isAccordionOpen) {
accordion2.style.height = `${accordion2.scrollHeight}px`;
button2.classList.add("cabanaComparison__featureButton--active");
cabanaCarousel.style.height = `${currentHeight + accordion2.scrollHeight}px`;
} else {
accordion2.removeAttribute("style");
button2.classList.remove("cabanaComparison__featureButton--active");
cabanaCarousel.style.height = `${currentHeight}px`;
}
}
});
});
});
Array.from(listButtons).forEach((button) => {
button.addEventListener("click", () => {
const parentList = button.closest("li");
const parentListIndex = [...parentList.parentNode.children].indexOf(parentList);
console.log(parentListIndex);
const parent = button.closest(".js-grid");
const slides = parent.querySelectorAll(".js-grid-item");
console.log(parent, slides);
Array.from(slides).forEach((slide) => {
console.log(slide.dataset.cabana);
const accordionFeature = slide.querySelector(".js-listItem-button")?.closest("li");
console.log(accordionFeature);
if (slide.dataset.cabana === "hideout-cabana-hideaway-beach") {
console.log({
accordionFeature,
button: accordionFeature?.querySelector(".js-listItem-button"),
accordion: accordionFeature?.querySelector(".js-listItem-accordion")
});
}
if (!accordionFeature) return;
const button2 = accordionFeature.querySelector(".js-listItem-button");
const accordion = accordionFeature.querySelector(".js-listItem-accordion");
console.log(accordion);
console.log(accordion?.scrollHeight);
const isOpen = accordion.hasAttribute("style");
if (!isOpen) {
accordion.style.height = `${accordion.scrollHeight}px`;
button2.classList.add("cabanaComparison__listItem__button--active");
} else {
accordion.removeAttribute("style");
button2.classList.remove("cabanaComparison__listItem__button--active");
}
});
});
});
CustomEase.create("inOut", "0.785, 0.055, 0.245, 0.95");
function openModal() {
document.body.classList.add("disable-scroll");
modals.forEach((modal) => {
modal.style.display = "flex";
const content = modal.querySelector(".cabanaComparison__modalInner");
setTimeout(() => {
gsap.to(modal, {
opacity: 1,
duration: 0.3,
ease: "power2.out",
onComplete: () => {
modal.style.pointerEvents = "auto";
}
});
if (content) {
gsap.to(content, {
y: 0,
opacity: 1,
duration: 0.6,
ease: "inOut"
});
}
}, 100);
});
}
function closeModal() {
document.body.classList.remove("disable-scroll");
modals.forEach((modal) => {
const content = modal.querySelector(".cabanaComparison__modalInner");
gsap.to(modal, {
opacity: 0,
duration: 0.3,
ease: "power2.out",
onComplete: () => {
modal.style.pointerEvents = "none";
modal.style.display = "none";
if (content) {
gsap.set(content, {
y: "25%",
opacity: 0
});
}
}
});
});
}
modalOpen.addEventListener("click", () => {
openModal();
});
modalClose.addEventListener("click", () => {
closeModal();
});
let toggleState = false;
function toggleDifferences() {
const toggleInner = differencesToggle.querySelector(".cabanaComparison__differencesToggleInner");
const sameElements = document.querySelectorAll("[data-difference-hide]");
if (toggleState) {
differencesToggle.classList.remove("cabanaComparison__differencesToggleButton--active");
gsap.to(toggleInner, {
x: "0%",
ease: "inOut",
duration: 0.3
});
sameElements.forEach((element) => {
element.style.display = "list-item";
});
} else {
differencesToggle.classList.add("cabanaComparison__differencesToggleButton--active");
gsap.to(toggleInner, {
x: "100%",
ease: "inOut",
duration: 0.3
});
sameElements.forEach((element) => {
element.style.display = "none";
});
}
toggleState = !toggleState;
}
differencesToggle.addEventListener("click", () => {
toggleDifferences();
});
useMatchMedia({
breakpoint: 1280,
mobileFunction: () => {
function handleSelection(selectElement, gridElement) {
const selectedCabana = selectElement.value;
const cabanaElements = gridElement.querySelectorAll(".cabanaComparison__gridItem");
cabanaElements.forEach((cabana) => {
if (cabana.dataset.cabana === selectedCabana) {
gsap.to(cabanaElements, {
opacity: 0,
pointerEvents: "none",
duration: 0.3,
ease: "power2.out"
});
gsap.to(cabana, {
opacity: 1,
pointerEvents: "all",
duration: 0.3,
ease: "power2.out"
});
}
});
}
selectLeft.addEventListener("change", () => {
handleSelection(selectLeft, leftGrid);
});
selectRight.addEventListener("change", () => {
handleSelection(selectRight, rightGrid);
});
handleSelection(selectLeft, leftGrid);
handleSelection(selectRight, rightGrid);
}
});
}
async function onDomContentLoaded() {
injectCSS(componentCss);
setTimeout(main, 1000);
}
document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", onDomContentLoaded) : onDomContentLoaded();
})();
Inizia la giornata all'insegna della gioia, esplorando cinque tratti di litorale di sabbia bianca: dallo snorkeling allo sport a South Beach fino alle secchiate di divertimento a Splashaway Bay℠. Quindi prenditi una pausa dallo spasso a Oasis Lagoon®, la grande piscina d'acqua dolce dell'isola. Non importa come decidi di goderti l'acqua: goditi gratuitamente lettini, ombrelloni e asciugamani da mare. Inoltre, tra un momento memorabile e l'altro, fai il pieno di sapori decisi e cibo illimitato nei cinque locali di ristorazione dell'isola, tutti inclusi. Dedicati al relax sull'isola più bella del mondo.
Parti dal Thrill Waterpark® per conquistare lo scivolo d'acqua più alto dei Caraibi. Poi attraversa l'isola a bordo di una teleferica lunga 488 metri. Anche i più piccoli possono divertirsi a Splashaway Bay℠.
"Scivoli d'acqua fantastici ed emozionanti!" - Clara S.
Una vacanza da urlo per sfuggire alla routine. Ci sono modi epici per ricaricarsi a portata di mano.
“Una giornata perfetta per rilassarsi sulla spiaggia.” - Deborah B.
Quando è il momento di ricaricarsi, le tentazioni culinarie sono sempre a portata di mano. Lasciati conquistare da amatissimi piatti in stile buffet, dai piatti segreti del menù, dai piatti dell'isola di alta qualità e molto altro ancora.
“Il cibo era delizioso, il tempo era splendido e abbiamo creato ricordi meravigliosi.” - Michael P.
A Perfect Day CocoCay non mancano certo i drink con vista. Indipendentemente da dove scegliate di ordinare il vostro drink, ci saranno vibrazioni a cui vale la pena brindare.
"La postazione del DJ in piscina ha davvero rubato la scena nell'area riservata agli adulti!" - Kirkretha D.
Si possono utilizzare sia il pacchetto Refreshment che il pacchetto bevande deluxe a Perfect Day CocoCay®.
Preparati a fare il pieno di ricordi. Scopri di più su CocoCay.
Perfect Day CocoCay è una pluripremiata destinazione privata in esclusiva per gli ospiti Royal Caribbean, che si trova alle Bahamas. Puoi entrare gratuitamente e mangiare senza limiti nei cinque locali di ristorazione dell'isola. Gli ospiti possono accedere liberamente a cinque tratti di spiagge di sabbia bianca, tra cui Oasis Lagoon, con ombrelloni, sedie a sdraio, asciugamani e molto altro. Gli ospiti possono vivere salire di livello e acquistare esperienze ancora più entusiasmanti. Come sfidare gli incredibili scivoli di Thrill Waterpark, percorrere un percorso in zip line lungo 500 metri, scegliere i pass giornalieri per soli adulti all'Hideaway Beach o l'esclusivo Coco Beach Club volare su una mongolfiera o noleggiare l'attrezzatura per ogni tipo di sport acquatici.
L'accesso a Perfect Day CocoCay, alle sedie, agli ombrelloni e ai cinque locali di ristorazione è gratuito, mentre alcune esperienze sono disponibili a pagamento. Il modo migliore per gli ospiti con prenotazione di pianificare il loro tempo e prenotare l'accesso alle esperienze a pagamento è tramite il programma della crociera My Royal Cruise (RoyalCaribbean.com/CruisePlanner). I prezzi cambiano regolarmente a causa della stagionalità e delle promozioni in corso, ma troverai sempre le ultime tariffe e grandi sconti prenotando in anticipo. Puoi prenotare le esperienze subito dopo aver prenotato la crociera.
La maggior parte delle attività offerte da Perfect Day CocoCay sono gratuite. Alcune di queste includono Oasis Lagoon, la più grande piscina d'acqua dolce dei Caraibi, il Captain Jill's GalleonSM, con scivoli e cannoni d'acqua, il nostro più grande parco acquativo di sempre Splashaway Bay. Oltre a spiagge di sabbia fine come Chill Island e South Beach, che offrono gratuitamente una marea di sedie a sdraio con ombrelloni e attività sulla spiaggia. E tra un'avventura e l'altra, per rifocillarti sull'isola ci sono anche cinque ristoranti gratuiti.
Certo! Tutti i nostri ospiti hanno a disposizione gratuitamente sdraio e ombrelloni su tutta l'isola. I teli mare gratuiti sono disponibili a bordo della nave al ponte piscina e possono essere portati sull'isola, dove avrai a disposizione anche tre postazioni del servizio asciugamani.
Il tram dell'isola è operativo tutto il giorno: parte dall'Arrivals Plaza (vicino al Thrill Waterpark) e si ferma ogni 15 minuti a South Beach, Oasis Lagoon e Breezy Bay a Chill Island. Inoltre, un tram dedicato trasporta esclusivamente gli ospiti a Hideaway Beach. Sono disponibili tram a rotazione regolare in tutta l'isola (anche dal molo all'Arrivals Plaza) per gli ospiti con difficoltà motorie o altri problemi di deambulazione. Il servizio di tram accessibile può essere richiesto tramite Guest Services, disponibile al molo e in vari punti dell'isola.