Μετά από μια περίοδο αβεβαιότητας σχετικά με το εάν θα επιτρεπόταν να ανοίξει, ο μεγαλύτερος λαβύρινθος χιονιού στον κόσμο καλωσορίζει και πάλι τους πελάτες. Είναι ακόμη μεγαλύτερος από έναν παρόμοιο που είχε ανοίξει το 2019, στην ίδια τοποθεσία και καταγράφηκε ως ο μεγαλύτερος από το Γκίνες. REUTERS/SHANNON VANRAES Ο λαβύρινθος χιονιού, που βρίσκεται στο A Maze In Corn στο Σεντ Αντόλφ της Μανιτόμπα στον Καναδά, άνοιξε για πρώτη φορά φέτος καθώς άρχισαν να χαλαρώνουν τα περιοριστικά μέτρα που έχουν επιβληθεί γαι την αντιμετώπιση της εξάπλωσης του κορωνοϊού. REUTERS/SHANNON VANRAES Εκτός από τον τεράστιο λαβύρινθο, υπάρχουν επίσης γλυπτά χιονιού, τσουλήθρες και τρέξιμο με μεγάλα έλκηθρα. Το αξιοθέατο είχε παρατηθεί νωρίτερα τον χειμώνα, καθώς δεν επιτρεπόταν να ανοίξει κατά την πρώτη χαλάρωση των περιοριστικών μέτρων. REUTERS/SHANNON VANRAES Ενώ ο λαβύρινθος είναι ανοιχτός, οι επισκέπτες επιτρέπεται να είναι σε ομάδες έως πέντε ατόμων, ενώ οι μάσκες είναι υποχρεωτικές. Οι εσωτερικοί χώροι θέρμανσης είναι κλειστοί και δεν υπάρχουν διαθέσιμα τραπέζια για πικνίκ. REUTERS/SHANNON VANRAES Ο λαβύρινθος δέχεται επίσης κρατήσεις ανά δύο ώρες για τον περιορισμό του πλήθους και αναμένεται να είναι ανοιχτός έως τον Μάρτιο, ανάλογα με τον καιρό. naftemporikigr με πληροφορίες winnipeg.ctvnews.ca
');
}
},
error: function() {
// Fallback to admin-ajax if REST API fails
$.ajax({
url: 'https://www.xtesini.gr/wp-admin/admin-ajax.php',
type: 'POST',
data: {
action: 'get_recommendations_carousel',
limit: limit,
nonce: '27e288e58c'
},
success: function(response) {
if (response.success && response.data.html) {
container.html(response.data.html);
initializeCarousel($('#carousel_684f140d572d3'));
} else {
container.html('
');
}
}
});
}
});
// Carousel initialization function
function initializeCarousel($wrapper) {
var $container = $wrapper.find(".carousel-container");
var $carousel = $wrapper.find(".related-articles-carousel");
var $items = $wrapper.find(".carousel-item");
var $prevBtn = $wrapper.find(".prev-arrow");
var $nextBtn = $wrapper.find(".next-arrow");
if ($items.length === 0) return;
var itemWidth = $items.first().outerWidth(true);
var visibleItems = Math.floor($container.parent().width() / itemWidth);
var position = 0;
var maxPosition = Math.max(0, $items.length - visibleItems);
// Touch handling variables
var isDragging = false;
var startX = 0;
var startY = 0;
var currentX = 0;
var currentTranslate = 0;
var startTranslate = 0;
var threshold = 10;
var isScrolling = null;
// Hide prev button initially
$prevBtn.css("opacity", "0.5");
// Navigation
$nextBtn.click(function() {
if (position < maxPosition) {
position++;
updatePosition();
}
});
$prevBtn.click(function() {
if (position > 0) {
position--;
updatePosition();
}
});
// Touch support
$carousel.on("touchstart", function(e) {
var touch = e.originalEvent.touches[0];
startX = touch.clientX;
startY = touch.clientY;
isDragging = true;
isScrolling = null;
var transform = $container.css("transform");
var matrix = transform.replace(/[^0-9,.\-]/g, "").split(",");
startTranslate = currentTranslate = matrix[4] ? parseInt(matrix[4]) : 0;
$container.css("transition", "none");
});
$carousel.on("touchmove", function(e) {
if (!isDragging) return;
var touch = e.originalEvent.touches[0];
var deltaX = touch.clientX - startX;
var deltaY = touch.clientY - startY;
if (isScrolling === null) {
if (Math.abs(deltaX) > threshold || Math.abs(deltaY) > threshold) {
isScrolling = Math.abs(deltaY) > Math.abs(deltaX) * 0.7;
}
}
if (isScrolling === true) {
isDragging = false;
$container.css("transition", "transform 0.3s ease");
return;
}
if (isScrolling === false) {
e.preventDefault();
currentX = deltaX;
var newTranslate = startTranslate + deltaX;
var minTranslate = -maxPosition * itemWidth;
var maxTranslate = 0;
if (newTranslate > maxTranslate) {
newTranslate = maxTranslate + (newTranslate - maxTranslate) * 0.3;
} else if (newTranslate < minTranslate) {
newTranslate = minTranslate + (newTranslate - minTranslate) * 0.3;
}
$container.css("transform", "translateX(" + newTranslate + "px)");
}
});
$carousel.on("touchend", function(e) {
if (!isDragging || isScrolling === true) return;
isDragging = false;
$container.css("transition", "transform 0.3s ease");
var prevPosition = position;
if (Math.abs(currentX) > itemWidth * 0.25) {
if (currentX > 0 && position > 0) {
position--;
} else if (currentX < 0 && position < maxPosition) {
position++;
}
}
if (position !== prevPosition && window.RecommendationTracker) {
var action = position > prevPosition ? 'next' : 'prev';
window.RecommendationTracker.trackCarouselInteraction(action);
}
updatePosition();
isScrolling = null;
currentX = 0;
});
function updatePosition() {
var translateX = -position * itemWidth;
currentTranslate = translateX;
$container.css({
"transition": "transform 0.3s ease",
"transform": "translateX(" + translateX + "px)"
});
$prevBtn.css("opacity", position <= 0 ? "0.5" : "1");
$nextBtn.css("opacity", position >= maxPosition ? "0.5" : "1");
}
// Responsive
$(window).on("resize", function() {
itemWidth = $items.first().outerWidth(true);
visibleItems = Math.floor($container.parent().width() / itemWidth);
maxPosition = Math.max(0, $items.length - visibleItems);
if (position > maxPosition) {
position = maxPosition;
}
updatePosition();
});
updatePosition();
}
});