Island
About This Attraction
Kecil Island is part of the Perhentian Islands located in Malaysia, famous for its beautiful beaches and crystal-clear waters. Visitors often enjoy snorkeling and scuba diving, as the surrounding marine life is abundant and colorful. Accommodations on Kecil Island range from budget chalets to more comfortable resorts, providing options for different travel preferences. The island does not have defined opening hours, but it is accessible year-round with peak tourist season typically from March to October.
Travelers can reach Kecil Island by taking a boat from Kuala Besut, the nearest mainland town. Once on the island, getting around is mostly done by foot or water taxi since there are no roads. Dining options include a variety of local eateries offering Malaysian cuisine. While planning a visit, its essential to note that most businesses accept cash only, so its wise to come prepared. These details ensure a smooth and enjoyable stay on Kecil Island.
Location Details
Address
Perhentian Islands, Terengganu, Malaysia
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
Free
Child
Free
Student
Free
Senior
Free
Opening Hours & Booking
Open
Days
Daily
Hours
24 hours
Seasonality
March to October
Booking
Booking Required?
No
Nearby Attractions
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
Taiping Zoo, located in Taiping, Malaysia, is one of the oldest zoos in the country,…
Learn More
The Perak Museum in Taiping is the oldest museum in Malaysia, established in 1883. It…
Learn More
A Famosa is a historical Portuguese fortress located in Melaka, Malaysia. Built in 1511, it…
Learn More
Long Beach on the Perhentian Islands is known for its clear waters and soft white…
Learn More
Perhentian Marine Park, located on the Perhentian Islands in Malaysia, is a protected area renowned…
Learn More
The Melaka River Cruise is a popular attraction in the historical city of Melaka, Malaysia.…
Learn More
Jonker Street, located in the heart of Melakas Chinatown, is famous for its lively night…
Learn More
George Town, the capital of Penang Island in Malaysia, is a UNESCO World Heritage site…
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';
}
});
});
}
});