Unique Transportation Experience
About This Attraction
The Bamboo Train in Battambang is a unique and intriguing form of rural transportation in Cambodia. Often referred to as the Norry by locals, this simple rail vehicle consists of a bamboo platform that sits on two axles powered by a small motor. Originally used by villagers to transport goods and people, it has now become a popular tourist attraction. Visitors can enjoy a short ride through the Cambodian countryside, which offers an authentic glimpse into local life.
For Bamboo Train travel information, its important to note that the tracks are shared with other trains, so passengers may have to disassemble their vehicle to allow others to pass. The train ride typically lasts about 30 minutes, offering picturesque views of fields and villages along the way. While safety measures are minimal, the experience is generally considered safe and suitable for all age groups. This makes it an accessible and memorable activity for travelers interested in experiencing Cambodias rural charm.
Location Details
Address
O Dambong, Battambang, Cambodia
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
$5
Child
$2
Student
$3
Senior
$4
Opening Hours & Booking
Open
Days
Daily
Hours
7:00 AM - 5:30 PM
Seasonality
Year-round
Booking
Booking Required?
No
Nearby Attractions
Pub Street in Siem Reap is a popular destination for both locals and tourists looking…
Learn More
Angkor Wat, located in Siem Reap, Cambodia, is one of the largest religious monuments in…
Learn More
Ta Prohm is a famous temple located in Siem Reap, Cambodia, known for the large…
Learn More
Angkor Thom, located in Siem Reap, Cambodia, is a historical site known for its remarkable…
Learn More
Mu Ko Chang National Park is located in the eastern part of Thailand and encompasses…
Learn More
White Sand Beach in Koh Chang is one of the most popular beaches on the…
Learn More
Klong Plu Waterfall is a popular attraction located on the west side of Koh Chang,…
Learn More
Sunset Beach on Koh Rong Sanloem is known for its pristine sandy shores and tranquil…
Learn More
Phnom Sampeau is a notable hill in Battambang, Cambodia, known for its historical and cultural…
Learn More
Wat Banan Temple is a historical site located in Battambang, Cambodia. The temple dates back…
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';
}
});
});
}
});