Tropical Rainforest
About This Attraction
El Yunque National Forest in Luquillo, Puerto Rico, is the only tropical rainforest in the United States National Forest System. It covers approximately 28,000 acres and offers a unique ecosystem with diverse flora and fauna. Visitors can find various trails suitable for different skill levels, providing access to waterfalls and panoramic views. El Yunque National Forest opening hours are generally from 7:30 AM to 6:00 PM, but its wise to check for any changes before planning your visit.
The forest is home to over 240 species of trees and numerous animal species, including the famous Coquí frog. Educational programs and guided tours are available to enhance the visitor experience. Amenities such as picnic areas and visitor centers help ensure a comfortable visit. Remember that weather conditions can change rapidly in this tropical environment, so its advisable to come prepared with rain gear and sturdy footwear.
Location Details
Address
PR-191, Luquillo, 00773, Puerto Rico
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
$2
Child
Free
Student
$2
Senior
$1
Opening Hours & Booking
Open
Days
Daily
Hours
7:30 AM - 5:00 PM
Seasonality
Year-round
Booking
Booking Required?
Yes
Book Your Visit
*Prices may vary. Check official website for the most up-to-date information.
Nearby Attractions
Luquillo Beach is a popular destination in Puerto Rico known for its stunning crescent-shaped shoreline…
Learn More
Condado Beach in San Juan is a popular destination for both locals and tourists. It…
Learn More
Old San Juan is a historic district in Puerto Ricos capital, San Juan. Known for…
Learn More
San Juan Cathedral, also known as Catedral Metropolitana Basílica de San Juan Bautista, is one…
Learn More
Castillo San Felipe del Morro, commonly known as El Morro, is a historic fortress located…
Learn More
The Malecón in Santo Domingo is a popular oceanfront avenue stretching along the Caribbean Sea.…
Learn More
Alcázar de Colón, located in Santo Domingo, Dominican Republic, is a historical landmark with significant…
Learn More
Zona Colonial in Santo Domingo is a historic neighborhood that is known for its colonial…
Learn More
The National Palace in Santo Domingo is an important government building and the official workplace…
Learn More
Baconao Park in Santiago de Cuba is a UNESCO Biosphere Reserve known for its natural…
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';
}
});
});
}
});