Nature Reserve
About This Attraction
Lokrum Island, located just a short ferry ride from Dubrovnik, Croatia, offers visitors a peaceful escape with its lush greenery and historical sites. The island is a designated nature reserve, providing habitats for diverse flora and fauna. Visitors can explore the ruins of a Benedictine monastery or enjoy the botanical garden that hosts exotic plant species. For those interested in swimming, Lokrum's rocky beaches and clear waters are inviting spots for a dip.
Practical information for planning a visit includes checking Lokrum Island opening hours, as they vary depending on the season. Typically, the island is accessible from April to November, with more frequent ferry services during the summer months. Its essential to note that overnight stays are not permitted on the island, so plan your visit accordingly. Remember to bring enough water and snacks, as amenities are limited.
Location Details
Address
Lokrum Island, Dubrovnik, Croatia
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
200 HRK
Child
50 HRK
Student
150 HRK
Senior
150 HRK
Opening Hours & Booking
Open
Days
Daily
Hours
9:00 AM - 6:00 PM
Seasonality
April to November
Booking
Booking Required?
No
Nearby Attractions
Old Town in Dubrovnik is a historical area surrounded by well-preserved medieval walls. These walls…
Learn More
The City Walls of Dubrovnik are one of the most prominent features of this historic…
Learn More
The Bay of Kotor is a stunning coastal region located in southwestern Montenegro. Known for…
Learn More
Kotor Old Town is a well-preserved medieval town located in Montenegro, known for its winding…
Learn More
St. Tryphon Cathedral is a significant historical site located in Kotor, Montenegro. Built in 1166,…
Learn More
The Blagaj Tekke is a historic Dervish monastery located near the town of Mostar in…
Learn More
Stari Most, also known as the Old Bridge, is a significant historical landmark in Mostar,…
Learn More
The Koski Mehmed Pasha Mosque is an important historical site located in Mostar, Bosnia and…
Learn More
The Marco Polo Museum in Korčula is dedicated to the life and travels of the…
Learn More
Korčula Old Town is a charming historic area located on the island of Korčula in…
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';
}
});
});
}
});