Natural Pool
About This Attraction
Emerald Pool in Krabi, Thailand, is a popular natural attraction located within the Thung Teao Forest Natural Park. Accessible via a 1.4-kilometer trail through lush rainforest, this crystal-clear pool is known for its striking emerald color. The water temperature is typically around 30 degrees Celsius, making it suitable for swimming most of the year. Visitors should note that the best time to visit is during the dry season from November to April to avoid heavy rains.
For those seeking Emerald Pool travel information, its important to know there is an entrance fee, which helps maintain the site. Facilities include restrooms and small cafes near the entrance. Its advisable to wear comfortable footwear for the walk and bring swimwear if planning to take a dip. Be mindful of safety signs and regulations to ensure a pleasant experience for everyone.
Location Details
Address
Khlong Thom Nuea, Khlong Thom District, Krabi 81120, Thailand
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
200 THB
Child
100 THB
Student
150 THB
Senior
200 THB
Opening Hours & Booking
Open
Days
Daily
Hours
08:30 - 16:30
Seasonality
Year-round
Booking
Booking Required?
No
Nearby Attractions
Vibrant local market with food stalls and crafts.
Klong Dao Beach is located on the island of Koh Lanta in Thailand, known for…
Learn More
Scenic pier with views of Krabi River, popular for boat tours.
Vibrant night market with food, crafts, and live music.
A museum showcasing the history and culture of Koh Lanta.
A scenic public park offering waterfront views, playgrounds, and walking paths.
A modern art museum showcasing contemporary Thai and international art.
A scenic mangrove forest with diverse wildlife, ideal for kayaking and eco-tours.
Scenic viewpoint overlooking Krabi River and mangroves.
A serene Buddhist temple with white exterior and intricate carvings.
";
}
// 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';
}
});
});
}
});