Museum
About This Attraction
The Napier Museum in Thiruvananthapuram, Kerala, is an architectural marvel known for its unique Indo-Saracenic style. Established in 1855, the museum houses a wide range of historical artifacts, including ancient bronze idols, traditional ornaments, and ivory carvings. Visitors can also admire the collection of exquisite paintings and artworks from different periods. With its rich history and diverse exhibits, the museum offers a glimpse into the cultural heritage of Kerala.
For practical information, it's important to note that the Napier Museum opening hours are typically from 10:00 AM to 4:45 PM, except on Mondays and Wednesdays when it remains closed. The museum is located within a sprawling park, providing visitors with a pleasant setting for a leisurely stroll before or after exploring the exhibits. Accessibility to the museum is convenient as it is situated in the heart of the city, making it easy to reach by public transportation or car. This makes it an ideal destination for both locals and tourists interested in exploring Keralas past.
Location Details
Address
Museum Rd, Kanaka Nagar, Nanthancodu, Thiruvananthapuram, Kerala 695033, India
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
20 INR
Child
5 INR
Student
10 INR
Senior
10 INR
Opening Hours & Booking
Open
Days
Tuesday to Sunday
Hours
10:00 AM to 4:45 PM
Seasonality
Closed on Mondays and public holidays
Booking
Booking Required?
No
Nearby Attractions
The Padmanabhaswamy Temple in Thiruvananthapuram, Kerala, is a significant Hindu temple dedicated to Lord Vishnu.…
Learn More
Samudra Beach in Kovalam is a serene destination known for its tranquil atmosphere and stunning…
Learn More
Kovalam Art Gallery is located in the scenic coastal town of Kovalam, India. The gallery…
Learn More
Lighthouse Beach in Kovalam is one of the most popular tourist destinations in Kerala, India.…
Learn More
Hawah Beach, located in Kovalam, Kerala, is a popular destination known for its picturesque coastline…
Learn More
Kovalam Beach in Thiruvananthapuram, Kerala, is a popular destination known for its beautiful coastline and…
Learn More
Sivagiri Mutt in Varkala, Kerala, is a renowned spiritual center and pilgrimage site. It was…
Learn More
Janardanaswamy Temple in Varkala is a significant Hindu pilgrimage center in Kerala, India. Dedicated to…
Learn More
Varkala Beach, located in the Indian state of Kerala, is renowned for its stunning cliffs…
Learn More
Kappil Lake in Varkala is a serene destination known for its tranquil surroundings and stunning…
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';
}
});
});
}
});