OVH Cloud OVH Cloud

zoom hashé

2 réponses
Avatar
pere.noel
j'ai cré un petit script qui remplace une image 'thumbnail' par une
image de plus grande taille.

<www.yvon-thoraval.com/JS/zoom.html>

je trouve le résultat pas fameux car la transition est sacadée, hashée,
alors que sur le net on trouve des transitions impeccables.

je ne vois pas d'où viendrait le problème...
--
Père Noël

2 réponses

Avatar
ASM
j'ai cré un petit script qui remplace une image 'thumbnail' par une
image de plus grande taille.

<www.yvon-thoraval.com/JS/zoom.html>

je trouve le résultat pas fameux car la transition est sacadée, hashée,
alors que sur le net on trouve des transitions impeccables.


heu ... je me demande ce que tu vas comprendre dans qques jours de :
http://www.yvon-thoraval.com/JS/zoom_rep/script.js

en tous cas, perso, je suis pômé
(et fr[] par ci, et ir[] par là, ou aw de c'côté, etc)
100 lignes de code pas parlant pour zoomer une image ça me paraît bp.

(m'semble qu'un zoomer je t'en avais fait un ?)
(trop simple sans doute ?)
(pas tant que ça, il y avait 2 images : vignette et grande
la grande se chargeant en fond pendant le zoom si j'me souviens bien)
--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Avatar
pere.noel
ASM wrote:

heu ... je me demande ce que tu vas comprendre dans qques jours de :
http://www.yvon-thoraval.com/JS/zoom_rep/script.js

en tous cas, perso, je suis pômé
(et fr[] par ci, et ir[] par là, ou aw de c'côté, etc)
100 lignes de code pas parlant pour zoomer une image ça me paraît bp.

(m'semble qu'un zoomer je t'en avais fait un ?)
(trop simple sans doute ?)
(pas tant que ça, il y avait 2 images : vignette et grande
la grande se chargeant en fond pendant le zoom si j'me souviens bien)



on click sur une image, zoom(o) mémorise position, largeur hauteur de
cette image et crée une nouvelle image à partir de son propre nom de
resource, la suite des opérations est passée à l'événement onload de
cette (grande) image soit :
setupZoomImage(e)

là on inclus deux images dans le body;
fRect c'est le rectangle de la grande image tel que souhaité
bSize et bRect (b pour body) les dim de la fenêtre, la "position" de
document.body étant la marge souhaitée autour de l'image.

ensuite fRect est changé par getZoomedRect(fRect,bRect) pour faire
entrer l'image dans la fenêtre telle qu'elle est, en gardant les
proportions de l'image.

ensuite bkg est une image de fond grise semi-tranparente qui
(semi-)cache la page telle qu'elle était.
zimg c'est l'image zoomée, ajoutée dans le dom du body.
à la fin de setupZoomImage() quand l setup est terminé, on lance :
zoomImage()

le zoom proprement dit, lequel commence par calculer la taille de
l'image par :
var mRect=morphRect(iRect,fRect,m)

iRect est donc le rectangle initial ,
fRect le rectangle final
m est un paramètre (en %) indiquant la distance par rapport à l'image
finale par ex :
m = 0 l'image est affichée sur la petite image
m = 100 l'image est affichée dans sa grandeur max copatible avec la
fenêtre.

donc ce m est incrémenté de minc (m incrément) à chaque passage dans
zoomImage()
ici minc=5 et dt (delay time) est à 10 (ms)

donc zoomImage s'auto appelle à travers setTimeOut tant que m < 101


dernière fonction : clearZoom() elle enlève les enfants précédemment
ajoutés au body et poitionne à défaut qq variables.


donc il n'y a que 3 fonctions intervenant dans le zooming ce sont :
zoomImage() qui lance le zoom
clearZoom() qui supprime le zoom

morphRect, une fonction auxiliaire qui calcule l'interpolation entre
image initiale et image finale en fonction d'un paramètre m.

--
Père Noël