Cable-stayed bridge
About This Attraction
The Rio-Antirrio Bridge, also known as the Charilaos Trikoupis Bridge, is an impressive cable-stayed bridge in Greece. It connects the town of Rio on the Peloponnese peninsula with Antirrio on mainland Greece. As one of the worlds longest multi-span cable-stayed bridges, its total length measures approximately 2,880 meters. The structure was designed to withstand seismic activity and strong winds, making it a significant engineering achievement.
For those interested in visiting or crossing the bridge, its important to note that there are no specific Rio-Antirrio Bridge opening hours since it is open for vehicular traffic at all times. The bridge not only facilitates transportation but also offers pedestrians and cyclists stunning views of the surrounding Gulf of Corinth. Tolls are required for vehicles, so travelers should be prepared for this expense. Its strategic location plays a vital role in connecting western Greece with the rest of the country efficiently.
Location Details
Address
Rio, Patras, Greece
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
13.50 EUR
Child
Free
Student
11.00 EUR
Senior
11.00 EUR
Opening Hours & Booking
Open
Days
Daily
Hours
24 hours
Seasonality
Year-round
Booking
Booking Required?
No
Nearby Attractions
The Patras Archaeological Museum, located in the city of Patras, Greece, showcases a vast collection…
Learn More
The Rotunda in Thessaloniki, Greece, is an impressive architectural structure with a fascinating history. Constructed…
Learn More
The Asklepion in Kos is an ancient healing temple dedicated to Asclepius, the Greek god…
Learn More
Bourtzi Castle is a small fortress located on an island in the harbor of Nafplio,…
Learn More
Nafplio Old Town is a historic area in Nafplio, Greece, known for its charming streets…
Learn More
Palamidi Fortress is a historic site located in Nafplio, Greece, perched on a hilltop with…
Learn More
The Ancient Agora in Kos is a significant archaeological site that offers a glimpse into…
Learn More
The Acropolis in Athens is a historical site of great significance, with its construction dating…
Learn More
The National Archaeological Museum in Athens is one of the largest and most significant museums…
Learn More
The Parthenon in Athens is a historical monument that stands as a symbol of ancient…
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';
}
});
});
}
});