Η ταχεία διασπορά των μολύνσεων από νέο κορωνοϊό εντός και περιμετρικά της πόλης της Νίκαιας θα οδηγήσει στην επιβολή επιπρόσθετων περιορισμών στις μετακινήσεις, δήλωσε ο υπουργός Υγείας της Γαλλίας Ολιβιέ Βεράν.Ο Βεράν είπε ότι οι αποφάσεις σχετικά με την ενδεχόμενη αυστηροποίηση των ορίων μετακινήσεων θα ληφθούν το Σαββατοκύριακο. «Υπάρχουν μερικές πόλεις και περιοχές στη Γαλλία, όπου ο ιός κυκλοφορεί πολύ ταχύτερα σε σύγκριση με άλλες και αυτό ενδέχεται να απαιτήσει την επιβολή μέτρων τοπικής καραντίνας», επισήμανε ο Βεράν, κατά τη διάρκεια επίσκεψης σε κέντρο υγείας της Νίκαιας. Η γαλλική κυβέρνηση έχει επιβάλει τοπικές απαγορεύσεις της κυκλοφορίας και λοκντάουν σε άλλες περιοχές, ωστόσο, σε γενικές γραμμές προτιμά την επιβολή μέτρων σε εθνικό επίπεδο. «Εάν η κυβέρνηση αποφασίσει ότι χρειαζόμαστε να πάμε σε μερικό λοκντάουν, για παράδειγμα κάθε Σαββατοκύριακο, θα το στηρίξω και θα το ενθαρρύνω», δήλωσε, από την πλευρά του, ο Κριστιάν Εστροζί, ο συντηρητικός δήμαρχος της Νίκαιας, ο οποίος συνόδευε τον Βεράν στην επίσκεψή του. Σύμφωνα, εξάλλου, με τον Γάλλο υπουργό Υγείας, η τάση σε εθνικό επίπεδο των μολύνσεων κορονοϊού επιδεινώθηκε τις τελευταίες ημέρες. Η Γαλλία κατέγραψε 24.116 νέες μολύνσεις χθες, μια αύξηση σχεδόν 4.000 μολύνσεων σε σύγκριση με την προηγούμενη Παρασκευή. Η Γαλλία ανακοίνωσε, επίσης, 571 θανάτους από τον ιό, με αποτέλεσμα το σύνολο των νεκρών να πλησιάζει πλέον τους 84.000. Πηγές: ΑΜΠΕ, Reuters
');
}
},
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: 'ca241b5fa7'
},
success: function(response) {
if (response.success && response.data.html) {
container.html(response.data.html);
initializeCarousel($('#carousel_684d9ca17e1f4'));
} 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();
}
});