Marine Park
About This Attraction
Perhentian Marine Park, located on the Perhentian Islands in Malaysia, is a protected area renowned for its diverse marine life and clear waters. The park offers excellent opportunities for snorkeling and observing coral reefs teeming with fish. Visitors can also enjoy various water activities like kayaking and swimming. Transitioning from the waters, the islands have beautiful beaches where people can relax and enjoy the tropical environment.
The park has specific visiting hours, known as Perhentian Marine Park opening hours, which visitors should check ahead of planning their trips. It is advisable to visit during daylight to fully appreciate the underwater beauty. Additionally, there are conservation efforts in place to protect the natural habitat, so visitors should follow guidelines to minimize environmental impact. The combination of marine diversity and conservation makes it a notable destination for nature enthusiasts.
Location Details
Address
Perhentian Islands, Terengganu, Malaysia
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
MYR 5
Child
MYR 2
Student
MYR 3
Senior
MYR 3
Opening Hours & Booking
Open
Days
Daily
Hours
24 hours
Seasonality
March to October
Booking
Booking Required?
No
Nearby Attractions
Long Beach on the Perhentian Islands is known for its clear waters and soft white…
Learn More
Kecil Island is part of the Perhentian Islands located in Malaysia, famous for its beautiful…
Learn More
Turtle Sanctuary Beach in the Perhentian Islands is a serene destination known for its conservation…
Learn More
Taiping Lake Gardens, located in the town of Taiping in Perak, Malaysia, is one of…
Learn More
The Perak Museum in Taiping is the oldest museum in Malaysia, established in 1883. It…
Learn More
Taiping Zoo, located in Taiping, Malaysia, is one of the oldest zoos in the country,…
Learn More
George Town, the capital of Penang Island in Malaysia, is a UNESCO World Heritage site…
Learn More
Penang Hill, located in the Malaysian state of Penang, is a popular tourist destination known…
Learn More
Kek Lok Si Temple, located in Penang, Malaysia, is one of the largest and most…
Learn More
Batu Ferringhi Beach is a popular tourist destination on the northern coast of Penang Island,…
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';
}
});
});
}
});