Home » Europe » Croatia » Vis » Vis Town
Vis Town

Vis Town

Vis Town is located on the island of Vis in Croatia and is one of its two main settlements. Known for its historical significance, it has a rich past that dates back to ancient Greek and Roman times.

Vis
Share to Friends
Historic Town

About This Attraction

Vis Town is located on the island of Vis in Croatia and is one of its two main settlements. Known for its historical significance, it has a rich past that dates back to ancient Greek and Roman times. Today, visitors can explore the remnants of these eras, such as the Roman baths and Issa archaeological site. The town also serves as a gateway to beautiful beaches and offers a range of local dining options that showcase traditional Dalmatian cuisine.

Practical information for travelers includes the Vis Town opening hours for various attractions and services, which can vary depending on the season. The town is accessible by ferry from Split, making it relatively easy to reach for those interested in experiencing its unique offerings. Additionally, Vis Town provides a peaceful atmosphere with scenic views of the Adriatic Sea, ideal for leisurely walks or relaxing afternoons. Visitors should check local schedules for updated information upon arrival.

Location Details

Address Vis, 21480, Croatia

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 Monday to Sunday
Hours 24 hours
Seasonality Year-round

Booking

Booking Required? No

Nearby Attractions

Showing 10 of 20 attractions
Miles Kilometers

Stiniva Beach

Beach

Stiniva Beach, located on the southern coast of Vis Island in Croatia, is known for…

9.2/10
Learn More

Pakleni Islands

Archipelago

The Pakleni Islands are a picturesque group of islands located off the coast of Hvar,…

9.2/10
Learn More

Hvar Town

Historic Town

Hvar Town, located on the island of Hvar in Croatia, is well-known for its stunning…

8.7/10
Learn More

Blue Cave

Natural Wonder

The Blue Cave on the island of Vis is a popular natural attraction known for…

9.2/10
Learn More

Diocletian's Palace

Historical Site

Diocletians Palace in Split, Croatia, is a historic site built for the Roman Emperor Diocletian…

9.5/10
Learn More

Marjan Hill

Natural Park

Marjan Hill is a popular recreational spot in Split, Croatia, offering stunning panoramic views of…

9.0/10
Learn More

Marco Polo Museum

Museum

The Marco Polo Museum in Korčula is dedicated to the life and travels of the…

7.5/10
Learn More

Korčula Old Town

Historic Site

Korčula Old Town is a charming historic area located on the island of Korčula in…

9.2/10
Learn More

Stari Most

Historic Bridge

Stari Most, also known as the Old Bridge, is a significant historical landmark in Mostar,…

9.2/10
Learn More

Koski Mehmed Pasha Mosque

Historical Mosque

The Koski Mehmed Pasha Mosque is an important historical site located in Mostar, Bosnia and…

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