Home » Asia » Thailand » Koh Tao » Shark Bay
Shark Bay

Shark Bay

Shark Bay, located on the southern coast of Koh Tao in Thailand, is a popular destination for snorkeling enthusiasts. Its waters are home to an array of marine life, including the blacktip reef sharks that give the bay its name.

Koh Tao
Share to Friends
Beach

About This Attraction

Shark Bay, located on the southern coast of Koh Tao in Thailand, is a popular destination for snorkeling enthusiasts. Its waters are home to an array of marine life, including the blacktip reef sharks that give the bay its name. The beach itself is accessible to visitors through several resorts and offers a tranquil setting with soft white sand and clear blue waters.

For those interested in Shark Bay travel information, its important to note that the best time to visit is during the dry season from December to April. Visitors can rent snorkeling gear from nearby shops or bring their own to explore the underwater world. While there are no lifeguards on duty, the waters are usually calm, making it a suitable spot for families and beginners alike.

Location Details

Address Shark Bay, Koh Tao, Surat Thani, Thailand

Visitor Information

Pricing & Ratings

Ticket Prices

Adult Free
Child Free
Student Free
Senior Free

Ratings

Overall Rating
8.5/10
Crowd Level
7.0/10

Opening Hours & Booking

Open

Days Daily
Hours 24 hours
Seasonality Year-round

Booking

Booking Required? No

Nearby Attractions

Showing 10 of 100 attractions
Miles Kilometers

John-Suwan Viewpoint

Scenic Viewpoint

John-Suwan Viewpoint is a popular destination on Koh Tao, Thailand, offering stunning panoramic views of…

8.5/10
Learn More

Mae Haad Pier

Pier

Mae Haad Pier is the main gateway to Koh Tao, an island in Thailand known…

7.5/10
Learn More

Sairee Beach

Beach

Sairee Beach is the longest and most popular beach on Koh Tao, an island in…

8.5/10
Learn More

Nang Yuan Island

Island

Nang Yuan Island is a small, picturesque destination near Koh Tao in Thailand. Known for…

9.0/10
Learn More

Ang Thong Marine Park

Marine National Park

Ang Thong Marine Park, located near Koh Samui in Thailand, is a stunning archipelago of…

9.2/10
Learn More

Bang Po Beach

Beach

A tranquil beach known for its serene atmosphere and clear waters, ideal for relaxation and…

8.5/10

Maenam Beach

Beach

Tranquil beach with golden sands and clear waters, popular for relaxation and water sports.

8.5/10

Art Samui Museum

Interactive Art Museum

Interactive 3D art museum with optical illusions.

8.5/10

Nathon Town

Town

Nathon Town is the administrative and commercial center of Koh Samui, known for its local…

7.5/10

Bophut Beach

Beach

A serene beach known for its calm waters and vibrant Fisherman's Village.

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