actualizacion de imagenes e actividades

This commit is contained in:
2026-03-11 11:20:54 -06:00
parent af4158164a
commit f9d1a5fe1a
8 changed files with 340 additions and 263 deletions
+68 -52
View File
@@ -31,63 +31,74 @@
pointer-events: none;
background-color: #84a816;
}
.sortable-placeholder {
background-color: rgba(132, 168, 22, 0.3);
border: 2px dashed #84a816;
visibility: visible !important;
}
</style>
<div class='page-sco py-2 py-md-0 h-100'>
<div class='container h-100'>
<div class='row justify-content-center align-items-center h-100'>
<div class='col-12'>
<div class='row justify-content-center' id="activity1">
<div class="page-sco py-2 py-md-0 h-100">
<div class="container h-100">
<div class="row justify-content-center align-items-center h-100">
<div class="col-12">
<div class="row justify-content-center" id="activity1">
<div class="col-10 mb-2 text-center">
<div class="position-relative d-inline-block">
<h2 class="text-center fw-bold text-primary">Técnica correcta para higiene de manos <br> de acuerdo con la técnica de la OMS</h2>
<hr class="border border-3 border-verde-oscuro hr-style mx-auto my-0">
<div class="position-relative d-inline-block">
<h2 class="text-center fw-bold text-primary">
Técnica correcta para higiene de manos <br />
de acuerdo con la técnica de la OMS
</h2>
<hr class="border border-3 border-verde-oscuro hr-style mx-auto my-0" />
</div>
</div>
<div class="col-10 px-0 mb-1 col-instrucciones">
<div class="card bg-lila-rosa border-0 my-2 rounded-4 bg-custom px-3 py-2 text-center">
<div class="d-flex justify-content-center align-items-center flex-row">
<img src="img/14.12.png" class="img-fluid mx-3">
<p class="mb-0 text-start">Arrastra los pasos del lavado de manos para colocarlos en el orden correcto.</p>
<img src="img/14.12.png" class="img-fluid mx-3" />
<p class="mb-0 text-start">
Arrastra los pasos del lavado de manos para colocarlos en el orden correcto.
</p>
</div>
</div>
</div>
<div class="col-12 col-actividad" style="overflow: hidden;">
<div class="col-12 col-actividad" style="overflow: hidden">
<div class="custom-grid">
<div class="img-sotable" data-order="0">
<img src="img/14.0.png" class="img-fluid">
<img src="img/14.0.png" class="img-fluid" />
</div>
<div class="img-sotable" data-order="1">
<img src="img/14.1.png" class="img-fluid">
<img src="img/14.1.png" class="img-fluid" />
</div>
<div class="img-sotable" data-order="2">
<img src="img/14.2.png" class="img-fluid">
<img src="img/14.2.png" class="img-fluid" />
</div>
<div class="img-sotable" data-order="3">
<img src="img/14.3.png" class="img-fluid">
<img src="img/14.3.png" class="img-fluid" />
</div>
<div class="img-sotable" data-order="4">
<img src="img/14.4.png" class="img-fluid">
<img src="img/14.4.png" class="img-fluid" />
</div>
<div class="img-sotable" data-order="5">
<img src="img/14.5.png" class="img-fluid">
<img src="img/14.5.png" class="img-fluid" />
</div>
<div class="img-sotable" data-order="6">
<img src="img/14.6.png" class="img-fluid">
<img src="img/14.6.png" class="img-fluid" />
</div>
<div class="img-sotable" data-order="7">
<img src="img/14.7.png" class="img-fluid">
<img src="img/14.7.png" class="img-fluid" />
</div>
<div class="img-sotable" data-order="8">
<img src="img/14.8.png" class="img-fluid">
<img src="img/14.8.png" class="img-fluid" />
</div>
<div class="img-sotable" data-order="9">
<img src="img/14.9.png" class="img-fluid">
<img src="img/14.9.png" class="img-fluid" />
</div>
<div class="img-sotable" data-order="10">
<img src="img/14.10.png" class="img-fluid">
<img src="img/14.10.png" class="img-fluid" />
</div>
<div class="img-sotable" data-order="11">
<img src="img/14.11.png" class="img-fluid">
<img src="img/14.11.png" class="img-fluid" />
</div>
</div>
</div>
@@ -99,8 +110,8 @@
<div class="d-none">
<div id="pop0">
<div class="container-fluid">
<div class=" w-100 text-center">
<img src="img/14.13.png" class="img-fluid">
<div class="w-100 text-center">
<img src="img/14.13.png" class="img-fluid" />
</div>
<div class="row justify-content-center">
<!-- <div class="col-12 text-center mb-2">
@@ -108,7 +119,10 @@
</div> -->
<div class="col-12 text-center">
<p>Una vez secas, <strong class="text-verde-ceniza">tus manos son seguras.</strong></p>
<p class="mb-0">El procedimiento tiene una duración total de <strong class="text-verde-ceniza">40-60 segundos.</strong></p>
<p class="mb-0">
El procedimiento tiene una duración total de
<strong class="text-verde-ceniza">40-60 segundos.</strong>
</p>
</div>
</div>
</div>
@@ -117,10 +131,10 @@
<script>
$(function () {
"use strict";
$('.wrap-course-content').addClass('fake');
$(".wrap-course-content").addClass("fake");
const bad = CourseNav.createSound('audio/feedback-incorrect.mpeg');
const good = CourseNav.createSound('audio/feedback-correct.mpeg');
const bad = CourseNav.createSound("audio/feedback-incorrect.mpeg");
const good = CourseNav.createSound("audio/feedback-correct.mpeg");
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
@@ -131,39 +145,40 @@
}
// Shuffle elements
const $sortables = $('.img-sotable');
const $sortables = $(".img-sotable");
const shuffled = shuffleArray($sortables.toArray());
$('.custom-grid').empty().append(shuffled);
$(".custom-grid").empty().append(shuffled);
// Initialize sortable
$('.custom-grid').sortable({
items: '.img-sotable',
$(".custom-grid").sortable({
items: ".img-sotable",
containment: ".wrap-course-content",
cursor: 'grabbing',
tolerance: 'pointer',
helper: "clone",
cursorAt: { top: 50, left: 50 },
cursor: "grabbing",
tolerance: "pointer",
forceHelperSize: true,
forcePlaceholderSize: true,
placeholder: "sortable-placeholder",
distance: 5,
sort: function (event, ui) {
var scale = parseFloat($('.wrap-course-content').css('transform').split('(')[1]) || 1;
var offset = ui.helper.offset();
var scale = parseFloat($(".wrap-course-content").css("transform").split("(")[1]) || 1;
var mouseX = event.pageX;
var mouseY = event.pageY;
ui.helper.css({
left: (mouseX - ui.helper.parent().offset().left) / scale - ui.helper.width() / 4,
top: (mouseY - ui.helper.parent().offset().top) / scale - ui.helper.height() / 2
left: (mouseX - ui.helper.parent().offset().left) / scale - ui.helper.width() / 2,
top: (mouseY - ui.helper.parent().offset().top) / scale - ui.helper.height() / 2,
});
},
update: function() {
update: function () {
checkOrder();
}
},
});
function checkOrder() {
const $items = $('.custom-grid .img-sotable');
const $items = $(".custom-grid .img-sotable");
let isCorrect = true;
$items.each(function(index) {
if (parseInt($(this).data('order')) !== index) {
$items.each(function (index) {
if (parseInt($(this).data("order")) !== index) {
isCorrect = false;
return false;
}
@@ -171,7 +186,7 @@
if (isCorrect) {
good.play();
$('.custom-grid').sortable('disable');
$(".custom-grid").sortable("disable");
checkAllCompleted();
}
}
@@ -181,10 +196,11 @@
const html = $("#pop0").html();
Swal.fire({
html: html,
target: document.getElementById('wrap-course-content'),
target: document.getElementById("wrap-course-content"),
customClass: {
popup: 'pop_html_style border border-3 border-primary rounded-4',
confirmButton: 'btn text-white bg-primary amor fw-semibold animate__animated animate__pulse animate__infinite'
popup: "pop_html_style border border-3 border-primary rounded-4",
confirmButton:
"btn text-white bg-primary amor fw-semibold animate__animated animate__pulse animate__infinite",
},
confirmButtonText: "Cerrar",
showConfirmButton: true,
@@ -194,8 +210,8 @@
width: "35em",
didClose: () => {
CourseNav.setSlideVisited();
$(".img-sotable").addClass('disabled');
}
$(".img-sotable").addClass("disabled");
},
});
}, 250);
}