Beach
About This Attraction
Tarkwa Bay Beach in Lagos is a popular destination for both locals and tourists looking for a peaceful retreat by the water. This man-made beach is located on an island and is accessible only by boat, which adds an element of adventure to the visit. The beach is known for its clean, sandy shores and calm waters, making it ideal for swimming and other water activities. Tarkwa Bay Beach opening hours are generally flexible, but it is advisable to visit during daylight for the best experience.
In addition to swimming, visitors can enjoy activities such as surfing and sunbathing. The beach has basic amenities, including food vendors and rental services for beach gear. It provides a laid-back atmosphere suitable for families and individuals looking to relax away from the city's hustle. Visitors should plan their trip considering the boat schedules to avoid inconvenience, as the island does not have direct road access.
Location Details
Address
Tarkwa Bay, Lagos, Nigeria
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
₦500
Child
₦300
Student
₦400
Senior
₦500
Opening Hours & Booking
Open
Days
Monday to Sunday
Hours
24 hours
Seasonality
Year-round
Booking
Booking Required?
No
Nearby Attractions
The National Museum Lagos is a prominent cultural institution located in Lagos, Nigeria. It houses…
Learn More
Nike Art Gallery in Lagos is one of the largest art galleries in West Africa,…
Learn More
Lekki Conservation Centre is a popular nature reserve located in Lagos, Nigeria. It offers visitors…
Learn More
Taghazout Skatepark is a popular destination for skateboarding enthusiasts located in the coastal village of…
Learn More
Taghazout is a coastal village in Morocco renowned for its surf beaches, making it a…
Learn More
Paradise Valley, located near Taghazout in Morocco, is a popular destination for nature lovers and…
Learn More
Jemaa el-Fnaa is a famous public square located in the heart of Marrakech, Morocco. It…
Learn More
The Koutoubia Mosque, located in Marrakech, Morocco, is an iconic landmark known for its striking…
Learn More
Majorelle Garden in Marrakech is a popular tourist destination known for its stunning array of…
Learn More
Cofete Beach is a remote and stunning location on the island of Fuerteventura, part of…
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';
}
});
});
}
});