alpha_full/pages/produits/zoomImgScript.js
2026-04-06 22:58:51 +02:00

1 line
2.6 KiB
JavaScript
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// ---------------------------------------------------
// Loupe sur image zoom
// ---------------------------------------------------
function imageZoom (imgID, resultID) {
var img, lens, result, cx, cy;
img = document.getElementById(imgID);
result = document.getElementById(resultID);
/* Créez la lentille: */
lens = document.createElement("DIV");
lens.setAttribute("class", "img-zoom-lens");
/* mettez la lentille: */
img.parentElement.insertBefore(lens, img);
/* Calculez le rapport entre le résultat et la lentille: */
cx = result.offsetWidth / lens.offsetWidth;
cy = result.offsetHeight / lens.offsetHeight;
/* Définissez les propriétés de fond pour le résultat DIV */
result.style.backgroundImage = "url('" + img.src + "')";
result.style.backgroundSize = (img.width * cx) + "px " + (img.height * cy) + "px";
/* Exécutez une fonction lorsque quelquun déplace le curseur sur limage ou sur la lentille: */
lens.addEventListener("mousemove", moveLens);
img.addEventListener("mousemove", moveLens);
/* La fonction ci-dessus pour les écrans tactiles: */
lens.addEventListener("touchmove", moveLens);
img.addEventListener("touchmove", moveLens);
function moveLens(e) {
var pos, x, y;
/* Empêchez toute autre action qui pourrait se produire pendant le déplacement sur limage */
e.preventDefault();
/* Obtenez les positions x et y du curseur: */
pos = getCursorPos(e);
/* Calculez la position de la lentille: */
x = pos.x - (lens.offsetWidth / 2);
y = pos.y - (lens.offsetHeight / 2);
/* Empêchez la lentille dêtre positionnée à lextérieur de limage: */
if (x > img.width - lens.offsetWidth) {x = img.width - lens.offsetWidth;}
if (x < 0) {x = 0;}
if (y > img.height - lens.offsetHeight) {y = img.height - lens.offsetHeight;}
if (y < 0) {y = 0;}
/* Mettez la position de la lentille: */
lens.style.left = x + "px";
lens.style.top = y + "px";
/* Affichez ce que la lentille "voit": */
result.style.backgroundPosition = "-" + (x * cx) + "px -" + (y * cy) + "px";
document.getElementById('x').value=x;
document.getElementById('y').value=y;
}
function getCursorPos(e) {
var a, x = 0, y = 0;
e = e || window.event;
/* Obtenez les positions x et y de limage: */
a = img.getBoundingClientRect();
// a = document.getElementById('imgToZoom').getBoundingClientRect();
/* Calculez les coordonnées x et y du curseur par rapport à limage: */
x = e.pageX - a.left;
y = e.pageY - a.top;
/* Envisagez tout défilement de page: */
x = x - window.pageXOffset;
y = y - window.pageYOffset;
return {x : x, y : y};
}
}