Coral Reef
About This Attraction
Ningaloo Reef, located off the coast of Coral Bay in Western Australia, is one of the largest fringing reefs in the world. It stretches over 260 kilometers and offers a unique experience for visitors with its diverse marine life. This area is particularly famous for being home to whale sharks, manta rays, and sea turtles. Visitors can enjoy snorkeling and swimming directly from the shore, making it accessible for families and individuals interested in exploring this natural wonder.
For those looking for Ningaloo Reef travel information, its helpful to know that Coral Bay provides various accommodation options and guided tours. The best time to visit is between March and July when whale shark tours are available. Additionally, the regions climate is generally warm, which makes it comfortable for outdoor activities year-round. With its clear waters and abundant wildlife, Ningaloo Reef offers an unforgettable experience for nature enthusiasts and travelers alike.
Location Details
Address
Coral Bay, Western Australia, Australia
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
AUD 165
Child
AUD 110
Student
AUD 150
Senior
AUD 150
Opening Hours & Booking
Open
Days
Daily
Hours
24 hours
Seasonality
Year-round
Booking
Booking Required?
Yes, for tours
Book Your Visit
*Prices may vary. Check official website for the most up-to-date information.
Nearby Attractions
Maud Sanctuary Zone in Coral Bay is a popular destination for nature lovers and marine…
Learn More
The Kuranda Scenic Railway is a historic and picturesque train journey through the rainforest of…
Learn More
The Daintree Rainforest, near Cairns in Australia, is one of the oldest rainforests in the…
Learn More
The Great Barrier Reef in Cairns is one of the worlds most famous natural wonders,…
Learn More
Melbourne Zoo, located in Parkville, is one of the oldest zoos in Australia and offers…
Learn More
Federation Square is a major cultural precinct located in the heart of Melbourne, Australia. It…
Learn More
Swan River, located in Perth, Western Australia, is a popular destination for both locals and…
Learn More
Kings Park in Perth is one of the largest inner-city parks in the world, spanning…
Learn More
Fremantle, located at the mouth of the Swan River in Perth, is known for its…
Learn More
Lone Pine Koala Sanctuary, located in Brisbane, is renowned as the worlds first and largest…
Learn More
";
}
// Initialize modal controls
const initModalControls = function() {
console.log('Initializing modal controls');
const modal = document.getElementById('attraction-modal');
const closeBtn = document.querySelector('.attraction-modal-close');
if (closeBtn) {
closeBtn.addEventListener('click', function() {
modal.style.display = 'none';
document.body.style.overflow = '';
});
}
window.addEventListener('click', function(event) {
if (event.target === modal) {
modal.style.display = 'none';
document.body.style.overflow = '';
}
});
// Make attraction cards clickable
const attractionCards = document.querySelectorAll('.attraction-card');
console.log('Found ' + attractionCards.length + ' attraction cards');
attractionCards.forEach(card => {
card.addEventListener('click', function(e) {
openModalWithCardData(this);
});
});
};
// Function to open modal with card data
const openModalWithCardData = function(card) {
// Get data from hidden div
const data = card.querySelector('.attraction-full-data');
if (!data) {
console.error('No attraction data found in card');
return;
}
const modal = document.getElementById('attraction-modal');
if (!modal) {
console.error('Modal element still not found after creation attempt');
return;
}
// Helper function to safely get element text
function getElementText(selector) {
const element = data.querySelector(selector);
return element ? element.textContent : '';
}
try {
// Basic Info
document.getElementById('attraction-modal-title').textContent = getElementText('.attraction-name');
document.getElementById('attraction-modal-type').textContent = getElementText('.attraction-type-full');
document.getElementById('attraction-modal-description').textContent = getElementText('.attraction-description-full');
// Reset all containers to hidden
['attraction-modal-hours-container', 'attraction-modal-price-container',
'attraction-modal-address-container', 'attraction-modal-image-container'].forEach(id => {
const container = document.getElementById(id);
if (container) container.style.display = 'none';
});
// Rating
const ratingText = getElementText('.attraction-rating-full');
if (ratingText) {
const ratingValue = parseFloat(ratingText);
if (!isNaN(ratingValue)) {
const ratingValueEl = document.getElementById('attraction-modal-rating-value');
const ratingFillEl = document.getElementById('attraction-modal-rating-fill');
if (ratingValueEl) ratingValueEl.textContent = ratingValue.toFixed(1) + '/10';
if (ratingFillEl) ratingFillEl.style.width = (ratingValue * 10) + '%';
}
}
// Show the modal
modal.style.display = 'block';
document.body.style.overflow = 'hidden'; // Prevent background scrolling
console.log('Modal opened successfully');
} catch (error) {
console.error('Error opening modal:', error);
}
};
// Try to create the modal
const created = createModal();
console.log('Modal created:', created);
// If not created (already exists), initialize the controls
if (!created) {
initModalControls();
}
// Also initialize distance toggle
const distanceToggle = document.getElementById('distance-unit-toggle');
if (distanceToggle) {
distanceToggle.addEventListener('change', function() {
const showKm = this.checked;
// Update toggle labels
const labels = document.querySelectorAll('.toggle-label');
if (labels.length >= 2) {
labels[0].style.opacity = showKm ? '0.5' : '1';
labels[1].style.opacity = showKm ? '1' : '0.5';
}
// Update all distance displays
document.querySelectorAll('.nearby-attraction-card').forEach(card => {
const kmEl = card.querySelector('.distance-km');
const miEl = card.querySelector('.distance-mi');
if (kmEl && miEl) {
kmEl.style.display = showKm ? 'inline' : 'none';
miEl.style.display = showKm ? 'none' : 'inline';
}
});
});
}
});