LOUPE SUR IMAGE AU PASSAGE DE LA SOURIS !

Utilisateur anonyme - 3 juil. 2006 à 19:14
rominail Messages postés 30 Date d'inscription vendredi 23 avril 2010 Statut Membre Dernière intervention 3 novembre 2012 - 25 oct. 2012 à 19:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/38424-loupe-sur-image-au-passage-de-la-souris

rominail Messages postés 30 Date d'inscription vendredi 23 avril 2010 Statut Membre Dernière intervention 3 novembre 2012
25 oct. 2012 à 19:09
Super!
lezouave33 Messages postés 8 Date d'inscription mardi 24 février 2004 Statut Membre Dernière intervention 2 février 2013
9 déc. 2010 à 16:59
Salut,

et si on a plusieurs images ?

J'ai essayé de doubler le script en changeant div1 et img1 en div2 et img2
mais ça ne fonctionne pas.

Le pire ?
C'est que j'ai un flip jquery (des pages qui tournent quand on clique dessus)
et que j'aimerais qu'il y cet effet loupe sur chaque image...

Mais il y a un conflit d'ID.

Alors première question si on a plus d'une image comment fait on ?
Et enfin comment rendre ce script compatible à un autre utilisant déjà des ID
dans les balises img et div ?

Merci d'avance aux génies qui sauront répondre !
fabrice0501 Messages postés 1 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 20 septembre 2008
20 sept. 2008 à 14:17
bonjour,
je trouve ce mode de zoom très sympa
j'ai voulu le mettre sur mon site en le prenant sur ce lien http://valid.tjp.hu/tjpzoom/index_en.html
il marche très bien sur une page simple mais lorsque je le place à l'interieur d'une div,la souris ne se trouve pas en face la div loupe sur ie. ya t'il un parametre a régler
merci
pylane22 Messages postés 3 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 27 juin 2008
27 juin 2008 à 15:45
non, décidemment, je n'y arrive pas du tout :'(
aidez-moi s'il vous plais...
pylane22 Messages postés 3 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 27 juin 2008
27 juin 2008 à 15:39
oups, il me semble que le commentaire d'avant répond à ma question.. je vais essayer pour voir ;)
pylane22 Messages postés 3 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 27 juin 2008
27 juin 2008 à 15:38
superbe cette loupe !!
du bon boulot :)

par contre, je n'arrive pas à déplacer "le tout", pour que l'image soit autre part que en haut à gauche de la page, je fais comment ?
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
31 mai 2008 à 19:51
petite rectification sur l'ajout de script que j'ai fait avant

document.getElementById("img1").style.top=(-(y)*zoom)+(carre/2)+document.getElementById("initiale").offsetTop*zoom)
document.getElementById("img1").style.left=(-(x)*zoom)+(carre/2)+document.getElementById("initiale").offsetLeft*zoom)
la c'est bon
et aussi si on ne veut pas voir le pointeur de sourie il suffit de creer une image vide ayant l'extention .cur avec the gimp par exemple et au passage sur l'image (onmouseover) lui adjoindre un style (rappel de la syntaxe:cursor:url(invisible.cur)).
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
30 mai 2008 à 22:56
le script est vraiment bien fait le div avec overflow=hidden
il fallait vraiment y penser.le script merite un 10/10.
sinon pour mettre l'image a l'endroit ou l'on veut il sufit de completer les deux lignes qui gere le deplacement du div par:
+document.getElementById("initiale").offsetTop*zoom)
et
+document.getElementById("initiale").offsetLeft*zoom)
ce qui donne:
document.getElementById("img1").style.top=-setY*zoom)+carre/2)+document.getElementById("initiale").offsetTop*zoom)
document.getElementById("img1").style.left=-setX*zoom)+carre/2)+document.getElementById("initiale").offsetLeft*zoom)
shefentekheux Messages postés 8 Date d'inscription mardi 14 novembre 2000 Statut Membre Dernière intervention 18 septembre 2010
21 mai 2008 à 03:27
bonjour

peut on avoir le meme effet mais dans une fenetre differente comme sur ce site http://www.delaveine.com/montres-accessoires-m,clock-4601a-marron.html

merci pour votre reponse
abdelaziz_info Messages postés 120 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 12 janvier 2017
9 nov. 2007 à 03:29
Je vous annonce que le curseur est aussi totalement invisible sur l'image sous Firefox, grâce au source : http://www.javascriptfr.com/codes/CURSEUR-INVISIBLE_35807.aspx
Récemment modifier pour ce but.

Pour ceux qui sont intéressés de voir l'exemple sur cette adresse : http://abdelaziz.site.voila.fr/loupe.htm
Un zip est également disponible à la même adresse.
vive2 Messages postés 63 Date d'inscription mercredi 27 juin 2007 Statut Membre Dernière intervention 13 novembre 2016
25 juil. 2007 à 16:31
cool merci beaucoup et ton chien il est classe avec des lunette
bhundu Messages postés 1 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 21 avril 2007
21 avril 2007 à 07:46
Salut,
merci pour ton script, le rendu est vraiment super !!
j'ai essayé de l'adapter pour mais besoins avec comme résultat attendu : la partie zommée qui reste fixe et qui sagrandi se que pointe le curseur.
le probleme c'est que chuis nul en javascript et que sa fait un décalage et qu'en plus y doit y avoir moyen d'alleger tout sa, alors si quelquun peu me coriger le script suivant ce serait super sympa :


<HTML><HEAD>
<TITLE></TITLE>
<script type="text/javascript"><!--
var zoom, largeur, hauteur,carre;
function reglages(){

//-- Facteur de zoom ---
zoom=2.5;
//-- Taille de l'image initiale --
largeur=400;
hauteur=600;
//-- taille du carré de la loupe EN PIXELS--
carre=250;

//------------------------------------------
document.getElementById("initiale").width=largeur;
document.getElementById("initiale").height=hauteur;
document.getElementById("div1").style.width=carre;
document.getElementById("div1").style.height=carre;
document.getElementById("img1").height=zoom*hauteur;
document.getElementById("img1").width=zoom*largeur;

}
function document_onmousemove(event)
{
var ie false; /*@cc_on ie true; @*/
if (ie) {
x=event.x+document.body.scrollLeft;
y=event.y+document.body.scrollTop;
}
else {
x=event.pageX;
y=event.pageY;
}

document.getElementById("img1").style.top=(-(y)*zoom)+(carre/2);
document.getElementById("img1").style.left=(-(x)*zoom)+(carre/2);
}
//--></script>
</HEAD>
<center>








</center></HTML>

merci d'avance
cs_carate Messages postés 57 Date d'inscription mardi 12 décembre 2006 Statut Membre Dernière intervention 1 novembre 2007
14 mars 2007 à 14:51
super bien fait ton script 10/10
bravo
abdelaziz_info Messages postés 120 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 12 janvier 2017
28 déc. 2006 à 03:50
Bonjour à tous :

Suite à un Message envoyé par intesmicro le 22/12/2006 19:13:49

Sur le réseau ?? !

« Bonsoir, je viens de télécharger votre zip pour cacher le pointeur de la souris. Je cherche juste à cacher la flèche dans le cas ou j'utilise l'effet loupe grace au zip suivant :
http://www.javascriptfr.com/code.aspx?ID=38424
Je souhaite donc que la flèche disparaisse (mais pas l'effet loupe) seulement sur l'image mais pas dans le reste de la page. Pensez-vous que cela soit possible avec une de vos réalisations et si oui comment procéder ? (quel scrip utiliser, ou mettre la référence à l'image, etc.) Merci d'avance pour votre réponse, bien cordialement, JFR » fin de message.




J'ai posé à la disposition de tout le monde une solution de ce problème sur l'adresse suivante : http://abdelaziz.site.voila.fr/loupe.htm
Vous trouverez un exemple complet que vous pourrez tester directement en ligne sur (Microsoft Internet Explorer) mais tenez compte à votre connexion ?

Curseur invisible comme demandé ? Sans aucune modification du code (js) de la source « http://www.javascriptfr.com/code.aspx?ID=38424 »
Je me suis servi seulement de l'idée que j'avais postée sur « http://www.javascriptfr.com/code.aspx?ID=35807 »

Un zip est également disponible à la même adresse notée ici dessus.
Et vous pouvez toujours me contacter sur cette adresse : http://abdelaziz.site.voila.fr/contact.htm

merci...!
jmeunier Messages postés 86 Date d'inscription mardi 10 septembre 2002 Statut Membre Dernière intervention 17 mai 2013
7 oct. 2006 à 17:18
ps : je l'ai mis en ligne sur
http://www.sesame-ouvre-toi.net
jmeunier Messages postés 86 Date d'inscription mardi 10 septembre 2002 Statut Membre Dernière intervention 17 mai 2013
7 oct. 2006 à 10:29
Il y a un script qui permet cela sur :
http://valid.tjp.hu/zoom/
thetrouf Messages postés 4 Date d'inscription mardi 3 octobre 2006 Statut Membre Dernière intervention 30 octobre 2006
6 oct. 2006 à 15:22
Trés bien cette loupe

Mais j'ai juste un petit probléme.
Comment peut on déplacer cette ensemble dans une page ? pour l'instant elle est bloquée en haut à gauche.

J'ai l'impression qu'on est bloqué par "position= absolute" et même en changeant "top" et "left" ça ne change pas la position de la loupe.

pourriez m'aider en html
merci
jmeunier Messages postés 86 Date d'inscription mardi 10 septembre 2002 Statut Membre Dernière intervention 17 mai 2013
23 sept. 2006 à 17:02
amélioration pour éviter de taper 3 fois le nom de l'image

loupe.htm

<html>
<head>
<title>fresque photos insolites</title>
<script language="javascript">
var wi = 0
var wi2 = 0
var n = ""

function dimension()
{
n = document.img01.src
wi = document.img01.width
wi2 = wi * 2

v = '<HTML><HEAD>'
v = v + '<TITLE>fresque photos insolites</TITLE>'
v = v + '<LINK rel=stylesheet type="text/css" href="jac.css">'
v = v + '<scr'+'ipt lang'+'uage="Ja'+'vaScr'+'ipt" type="text/ja'+'vascr'+'ipt" src="loupe.js"></sc'+'ript>'
v = v + '</HEAD>'
v = v + ''
v = v + ''
v = v + '
'
v = v + ''
v = v + '
'
v = v + '</HTML>'

document.write(v)
document.close()
}
</script>
</head>



</html>
jmeunier Messages postés 86 Date d'inscription mardi 10 septembre 2002 Statut Membre Dernière intervention 17 mai 2013
23 sept. 2006 à 13:07
script pour éviter de préciser la dimension de l'image à chaque fois :


loupe.htm

<html>
<head>
<title></title>
<script language="javascript">

wi = 0
wi2 = 0

function dimension()
{


wi = document.img01.width
wi2 = wi * 2

v = '<HTML><HEAD>'
v = v + '<TITLE></TITLE>'
v = v + '<script lang'+'uage="Ja'+'vaScr'+'ipt" type="text/ja'+'vascr'+'ipt" src="loupe.js"></sc'+'ript>'
v = v + '</HEAD>'
v = v + ''
v = v + ''
v = v + '
'
v = v + ''
v = v + '
'
v = v + '</HTML>'

document.write(v)
document.close()
}
</script>
</head>



</html>






loupe.js

function document_onmousemove(event)
{
var ie false; /*@cc_on ie true; @*/
if (ie) {
x=event.x+document.body.scrollLeft;
y=event.y+document.body.scrollTop;
}
else {
x=event.pageX;
y=event.pageY;
}
document.getElementById("div1").style.left=x-25;
document.getElementById("div1").style.top=y-25;
document.getElementById("img1").style.top=(-(y)*2)+25;
document.getElementById("img1").style.left=(-(x)*2)+25;
}
vduffaut Messages postés 31 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 3 mars 2008
22 juil. 2006 à 15:10
Sous mon Mozilla Firefox 1.5.0.4 avec Javascript activé, rien ne se passe... même si j'attends très longtemps (avec le site test) : quelqu'un a-t'il une idée ?

Sous IE : c'est bon et effectivement extrêmement simple !

Bravo
hackshell Messages postés 12 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 4 janvier 2009
11 juil. 2006 à 08:57
50 lignes de pure bonheur...

Chapeau bas !! Adelami,vraiment bo boulot..(10/10)
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
5 juil. 2006 à 20:38
Je trouve cet effet trop bien! A+
worstangel Messages postés 42 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 5 juillet 2006
5 juil. 2006 à 19:49
Joli code mais un truc pour que ce soit plus sympa :

1. Essaye de faire disparaître la souris au survol de l'image, qu'on ne se situe que par rapport à ta loupe...
Ca pourrait êter mieux puis ça augmenterais la visibilité dans le cadre de la loupe donnée.

2. Tu pourrais aussi mettre un "bouton" comme opur regler un volume mais ici, qu'il soit fait pour augmenter ou reduire la taille de la loupe. Puis un autre pour la puissance de la loupe.

Bonne continuation...
Amicalement, WA.
Utilisateur anonyme
5 juil. 2006 à 11:27
Bien bien, merci
Non ton exemple fonctionne très bien je l'ai réadapté mais c'est plutot la page d'exemple que j'ai publiée que j'ai oublié de mettre à jour !
Merci pour l'explication!
A bientot
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
5 juil. 2006 à 10:06
salut Adelami,

ça veut dire que mon exemple ne fonctionne pas ?
c'est possible ! mais tel que je l'ai mis, ça
marchait, enfin, chez moi, avec IE,FF,Opera...

explications à propos de /*@cc_on...*/
c'est de la "compilation conditionnelle"
ce n'est traité que par IE. les autres
navigateurs consièrent ça comme du commentaire.
( donc seil IE mettra la variable ie à true )
Utilisateur anonyme
5 juil. 2006 à 09:00
Bonjour,
Pour ce qui est de l'incompatibilité de l'exemple avec ff et opera, c'est dû au fait que je n'ai pas mis mon exemple à jour suite aux modifications...
Pour le reste, j'avoue que quelque chose m'échappe ! Mon débogueur n'affiche rien de précis... ni ie ni ff ni rien ...
Pour ca : /*@cc_on ie = true; @*/ je me demande aussi où l'on peut l'apprendre, puisque j'ai utilisé directement le code modifié de BULTEZ ...
cs_andros Messages postés 17 Date d'inscription vendredi 6 décembre 2002 Statut Membre Dernière intervention 4 juillet 2006
4 juil. 2006 à 23:21
Waouhh ! Un code si court avec autant d'effet !!

Petit rapport de bug :

-sur la page d'exemple, le code ne marche pas avec opera et mozilla (d'ailleurs le code est différent de celui du zip).

-en local avec le zip : ok avec mozilla et opéra, ok avec ie mais contient quand même une erreur au chargement de la page à la ligne : document.getElementById("div1").style.left=x-(carre/2); (en htm comme en hta) ensuite ça marche nickel (en htm comme en hta).

Sinon :
/*@cc_on ie true; @*/ > où peut-on apprendre des trucs pareils ?

Merci.
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
4 juil. 2006 à 10:38
une version ( à peine modifiée de l'original )
qui fonctionne avec IE,FF,Opera..

<HTML><HEAD>
<TITLE></TITLE>
<script type="text/javascript"><!--
function document_onmousemove(event)
{
var ie false; /*@cc_on ie true; @*/
if (ie) {
x=event.x+document.body.scrollLeft;
y=event.y+document.body.scrollTop;
}
else {
x=event.pageX;
y=event.pageY;
}
document.getElementById("div1").style.left=x-25;
document.getElementById("div1").style.top=y-25;
document.getElementById("img1").style.top=(-(y)*2)+25;
document.getElementById("img1").style.left=(-(x)*2)+25;
}
//--></script>
</HEAD>







</HTML>

pour les autres navigateurs que IE,
il faut un .htm au lieu du .hta.
cs_DomJ Messages postés 132 Date d'inscription dimanche 4 décembre 2005 Statut Membre Dernière intervention 3 décembre 2013 1
4 juil. 2006 à 02:18
7/10
Explication:
On ne peut pas modifier la grandeur de l'image...
C'est beau quand même continu tes scripts!

DomJ
Utilisateur anonyme
3 juil. 2006 à 19:14
Le cadre à été ajouté par la suite à la capture mais il est facile à faire avec : style="border-style:solid;border-width:1" !
A vos claviers !
Rejoignez-nous