Beach
About This Attraction
Stiniva Beach, located on the southern coast of Vis Island in Croatia, is known for its unique and picturesque setting. The beach is surrounded by high cliffs that provide a sense of seclusion and natural beauty. Visitors often access Stiniva Beach by hiking down a steep path or by taking a boat from nearby locations. Its important to note that there are no specific Stiniva Beach opening hours, as it is an outdoor destination open to the public at all times.
The small, pebbly beach can get crowded during peak tourist season, so visiting early in the morning may offer a more tranquil experience. Snorkeling is a popular activity here due to the clear waters and diverse marine life. However, facilities are limited, so bringing your own supplies like food and water is advisable. Overall, Stiniva Beach offers a unique experience for those looking to enjoy the natural beauty of the Adriatic Sea.
Location Details
Address
Stiniva Beach, Vis, Croatia
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
Free
Child
Free
Student
Free
Senior
Free
Opening Hours & Booking
Open
Days
Every day
Hours
Open 24 hours
Seasonality
Year-round
Booking
Booking Required?
No
Nearby Attractions
Vis Town is located on the island of Vis in Croatia and is one of…
Learn More
The Pakleni Islands are a picturesque group of islands located off the coast of Hvar,…
Learn More
Hvar Town, located on the island of Hvar in Croatia, is well-known for its stunning…
Learn More
Diocletians Palace in Split, Croatia, is a historic site built for the Roman Emperor Diocletian…
Learn More
The Blue Cave on the island of Vis is a popular natural attraction known for…
Learn More
Marjan Hill is a popular recreational spot in Split, Croatia, offering stunning panoramic views of…
Learn More
Korčula Old Town is a charming historic area located on the island of Korčula in…
Learn More
The Marco Polo Museum in Korčula is dedicated to the life and travels of the…
Learn More
Stari Most, also known as the Old Bridge, is a significant historical landmark in Mostar,…
Learn More
The Koski Mehmed Pasha Mosque is an important historical site located in Mostar, Bosnia and…
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';
}
});
});
}
});