Home » Asia » Malaysia » Langkawi » Pantai Cenang
Pantai Cenang

Pantai Cenang

Pantai Cenang is a popular beach destination located on the island of Langkawi, Malaysia. Known for its long stretch of white sandy beach and clear waters, it attracts tourists from around the world.

Langkawi
Share to Friends
Beach

About This Attraction

Pantai Cenang is a popular beach destination located on the island of Langkawi, Malaysia. Known for its long stretch of white sandy beach and clear waters, it attracts tourists from around the world. The area features a variety of accommodations ranging from budget hostels to luxury resorts, making it accessible for different types of travelers. Additionally, there are many restaurants and bars along the beachfront, offering both local and international cuisine.

During the day, visitors can enjoy activities such as sunbathing, swimming, and water sports like jet-skiing and parasailing. Shops selling souvenirs, clothing, and beach essentials also line the streets near the beach. While Pantai Cenang itself doesnt have specific opening hours, most businesses in the area operate from morning until late evening. This makes it easy for tourists to find something to do at nearly any time of day.

Location Details

Address Pantai Cenang, 07000 Langkawi, Kedah, Malaysia

Visitor Information

Pricing & Ratings

Ticket Prices

Adult Free
Child Free
Student Free
Senior Free

Ratings

Overall Rating
8.5/10
Crowd Level
8.0/10

Opening Hours & Booking

Open

Days Daily
Hours 24 hours
Seasonality Year-round

Booking

Booking Required? No

Nearby Attractions

Showing 10 of 47 attractions
Miles Kilometers

Langkawi Sky Bridge

Pedestrian Bridge

The Langkawi Sky Bridge is a remarkable curved pedestrian bridge located in Langkawi, Malaysia. It…

8.5/10
Learn More

Kilim Geoforest Park

Geoforest Park

Kilim Geoforest Park in Langkawi is known for its unique geological formations and rich biodiversity.…

8.7/10
Learn More

Sunrise Beach

Beach

Sunrise Beach in Koh Lipe is a popular destination known for its stunning sunrises and…

9.2/10
Learn More

Mountain Resort Viewpoint

Scenic Viewpoint

Scenic viewpoint offering panoramic views of Koh Lipe and surrounding waters.

8.5/10

Pitiusas Beach

Beach

Secluded beach with crystal-clear waters and white sand.

8.5/10

Koh Lipe Viewpoint

Scenic Viewpoint

Scenic viewpoint offering panoramic views of Koh Lipe and surrounding islands.

8.5/10

Karma Beach

Beach

A serene beach known for its clear waters and vibrant marine life, ideal for snorkeling…

8.5/10

Castaway Beach

Beach

A serene beach with clear waters, ideal for relaxation and snorkeling.

8.5/10

Sanom Beach

Beach

A serene and secluded beach with clear waters and soft sand.

8.5/10

Daya Beach

Beach

Daya Beach is a serene and picturesque beach known for its clear waters and white…

8.5/10
"; } // 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'; } }); }); } });
Scroll to Top