Forum TOWeb

23 Mai 2013 à 16h38

Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
Identifiez-vous Inscrivez-vous Accueil du forum Recherche avancée Aide sur le forum
A court d'idées cadeaux ? OFFREZ TOWEB POUR NOEL !
+  Forum TOWeb
|-+  TOWeb
| |-+  Scripts & astuces pour votre site
| | |-+  Comment faire un zOOM sur image?
« sujet précédent | | sujet suivant »
Pages: 1 [2] Bas de page Imprimer
Auteur Fil de discussion: Comment faire un zOOM sur image?  (Lu 8505 fois)
hergante
Invité
« Répondre #15 le: 20 Janvier 2010 à 13h48 »

Bonjour,
C'est très étonnant car je l'ai testé hier et pour moi ca fonctionne.
Et apparemment ton script est bon aussi.
Bien sur le truc idiot mais parfois on en fait, tu as bien inséré ton script dans le paragraphe choisi?
Cordialement
Hergante
Journalisée
laurents
Hero Member
*****

Votes : +88/-33
Messages: 3475


WWW
« Répondre #16 le: 20 Janvier 2010 à 13h53 »

Petite hypothèse : internet n'aimant pas les espaces, renomme tes fichiers : "sac my design.jpg" en "sac_my_design.jpg" et sac my design-petite.jpg" en sac my_design-petite.jpg".
Journalisée

TW e-comm V3 3.1.8.580 Seven - IE V8 -  Free, 1&1, OVH et PHPNET
gants-blancs
Hero Member
*****

Votes : +33/-34
Messages: 649


www.gants-blancs.com


WWW
« Répondre #17 le: 20 Janvier 2010 à 16h34 »

J'ai testé hier aussi, et j'ai rencontré le même souci.
trois paragraphes dans la page, avec sur chacun le %champ% comprenant le script et les images associées.

le script fonctionne pour le premier paragraphe mais pas pour les autres.
Qu'il soit mis en dessous, à droite du précédent, ou en onglets : nada.

l'image petite s'affiche ok, mais l'agrandissement au survol ne se fait pas.

un souci au niveau des positions relatives ou absolues?
Journalisée

modefreestyle
Sr. Member
****

Votes : +2/-1
Messages: 276



WWW
« Répondre #18 le: 20 Janvier 2010 à 17h04 »

Merci pour ces réponses rapides !

Je vais enlever les espaces du nom de l'image mais cela ne fonctionne pas pour les autres images qui n'ont pas d'espace dans le nom de fichier.

Hergante, oui j'ai bien mis le champ dans le paragraphe.
Tu as de la chance que cela fonctionne !
Je suis rassurée de voir que je ne suis pas la seule donc je suis pas si boulet que ça LOL Grimaçant
@ bientôt
Journalisée

Albert X
Invité
« Répondre #19 le: 20 Janvier 2010 à 18h36 »

Bonjour.

Quelques explications :

Dans ce script, une seule image (de la taille du zoom souhaité) est nécessaire.

Pensez aussi à adapter la taille du "popup" à celle de votre image.

Pour ajouter d'autres images, il suffit de "développer" dans le script :

Code:
targetList.addTarget("cible1","votre_photo01.jpg",largeur,hauteur);
targetList.addTarget("cible2","votre_photo02.jpg",largeur,hauteur);
targetList.addTarget("cible3","votre_photo03.jpg",largeur,hauteur);

Code:
<div class="cible">
<img id="cible1" src=" votre_photo01.jpg " width="100px">
</div>
<div  class="cible">
<img id="cible2" src=" votre_photo02.jpg " width="100px">
</div>
<div  class="cible">
<img id="cible3" src=" votre_photo03.jpg " width="100px">
</div>

Je redonne le script légèrement modifié en espérant qu'il fonctionne encore.  Clin d'oeil

Cordialement.

Code:
<style>
}

.cible
{

position : relative;
float : left;
top : 500px;
padding:10px;
border-style : solid;
margin : 5px;
border-width : 1px;
}


.popup
{
position : absolute;
width : 250px;
height : 213px;
border-style : solid;
border-width : 1px;
overflow:hidden;
left : -10000px;
z-index : 100;

}



</style>

<script>

function Target(id, picture, width, height)
{
this.id = id;
this.ref = null;
this.width = width;
this.height = height;
this.picture = picture;
}


Target.prototype.getHeight = function()
{
var elt = document.getElementById(this.id);
return elt.offsetHeight;
}

Target.prototype.getWidth = function()
{
var elt = document.getElementById(this.id);
return elt.offsetWidth;
}


function TargetList(popupId, popupWidth, popupHeight)
{
this.popupId = popupId;
this.popupWidth = popupWidth;
this.popupHeight = popupHeight;
this.items = new Array();

this.currentIndex = -1;
}

TargetList.prototype.addTarget = function(id,picture,width,height)
{
var item = new Target(id,picture,width,height);
item.index = this.items.length;

var elt = document.getElementById(id);
this.items.push(item);
}

TargetList.prototype.hidePopup = function()
{
if (this.currentIndex != -1)
{
document.getElementById(this.popupId).style.left=-10000+"px";
this.currentIndex = -1;
}
}

TargetList.prototype.selectTarget = function(index)
{
if (this.currentIndex != index)
{
if ((index >=0) && (index < this.items.length))
{
document.getElementById(this.popupId).innerHTML='<img src="'+this.items[index].picture+'">';
this.currentIndex = index;
}
}
}

TargetList.prototype.showPopup = function(x,y)
{
var elt = document.getElementById(this.popupId);
elt.style.left=x+5+"px";
elt.style.top=y-this.popupHeight+"px";
}

TargetList.prototype.findTarget = function(x,y)
{
var index = -1;
for (var i=0; i < this.items.length; i++)
{
var position = findPosition(this.items[i].id);
if ((x >= position.x) && (x < position.x+this.items[i].getWidth()) && (y >= position.y) && (y < position.y+this.items[i].getHeight()))
{
index = i;
break;
}
}
return index;
}


var targetList = new TargetList("popup",250,213);




function strToNumber(value)
{
var nbr = parseInt(value);
if (isNaN(nbr)) { nbr = 0;}
return nbr;
}


function mousePosition(e)
{
var result = new Array();
result["x"] = 0;
result["y"] = 0;
if (!e) var e = window.event;
if (e.pageX || e.pageY) {
result["x"] = e.pageX;
result["y"] = e.pageY;
}
else if (e.clientX || e.clientY) {
result["x"] = e.clientX + document.body.scrollLeft
+ document.documentElement.scrollLeft;
result["y"] = e.clientY + document.body.scrollTop
+ document.documentElement.scrollTop;
}
return result;
}


function findPosition(id)
{
var elt = document.getElementById(id);
var result = new Array();
result["x"] = 0;
result["y"] = 0;
while (elt)
{
result["x"] += elt.offsetLeft;
result["y"] += elt.offsetTop;

elt = elt.offsetParent;
}

return result;
}

function mouseMove(e)
{
var mouse = mousePosition(e);
index =targetList.findTarget(mouse.x,mouse.y);

if (index != -1)
{
targetList.selectTarget(index);
targetList.showPopup(mouse.x,mouse.y);
}
else
{
targetList.hidePopup();
}
}

function load()
{
targetList.addTarget("cible1","achille_grande.jpg",250,213);



document.onmousemove=mouseMove;
}

</script>
</head>
<body onload="load()">
<div class="popup" id="popup"></div>
<div class="cible">
<img id="cible1" src="achille_grande.jpg" width="100px">

</div>
</body>
</html>
« Dernière édition: 20 Janvier 2010 à 18h59 par Jean-Serge » Journalisée
VF
Hero Member
*****

Votes : +47/-36
Messages: 847



WWW
« Répondre #20 le: 24 Janvier 2010 à 10h23 »

Bonjour Jean-Serge,
Merci beaucoup pour ces explications. J'ai réussi à l'implémenter mais je souhaiterais modifier la taille de l'amage d'origine et du pop-up.
Malheureusement je suis complètement néophtye en HTML et j'ai besoin d'un peu d'aide.
Ma photo d'origine fait 2848 x 2136 je l'ai donc réduite avec Irfan View à 350 x 260.
Dans le script j'ai modifié la partie :
popup
{
   position : absolute;
   width : 250px;
   height : 213px;
pour mettre :
popup
{
   position : absolute;
   width : 350px;
   height : 260px;

Cela fonctionne.
Mais l'image du départ (pas le pop-up) est vraiment trop petit - où dois-je modifier pour l'agrandir ?

Merci d'avance.
Journalisée

V3.1.7.579 Pro & V4.1.4.619 Pro - IE 9 - Seven - JustHost
www.topofturkey.com
Albert X
Invité
« Répondre #21 le: 24 Janvier 2010 à 11h53 »

Bonjour.

Il semble que j'avais mis la taille du popup à 250 par 213.

Tu dois donc modifier la ou les parties du code "popup" ayant cette taille.

Cordialement.
Journalisée
VF
Hero Member
*****

Votes : +47/-36
Messages: 847



WWW
« Répondre #22 le: 24 Janvier 2010 à 11h59 »

Merci je l'ai modifié mais c'est la taille que je veux changer - c'est la taille de l'mage d'origine que je souhaite changer - l'image qui appraît avant le popup.
Cordialement.
Journalisée

V3.1.7.579 Pro & V4.1.4.619 Pro - IE 9 - Seven - JustHost
www.topofturkey.com
Albert X
Invité
« Répondre #23 le: 24 Janvier 2010 à 12h11 »

Bonjour.

A la fin du script, tu peux adapter la photo à ta convenance : 100px, 150px, 200 ...

Je te mets ci dessous, la partie du code afin que tu puisses te repérer.

Code:
<img id="cible1" src="achille_grande.jpg" width="100px">

Cordialement
Journalisée
VF
Hero Member
*****

Votes : +47/-36
Messages: 847



WWW
« Répondre #24 le: 24 Janvier 2010 à 12h24 »

Un grand merci !
Journalisée

V3.1.7.579 Pro & V4.1.4.619 Pro - IE 9 - Seven - JustHost
www.topofturkey.com
gants-blancs
Hero Member
*****

Votes : +33/-34
Messages: 649


www.gants-blancs.com


WWW
« Répondre #25 le: 24 Janvier 2010 à 17h09 »

J'ai testé hier aussi, et j'ai rencontré le même souci.
trois paragraphes dans la page, avec sur chacun le %champ% comprenant le script et les images associées.

le script fonctionne pour le premier paragraphe mais pas pour les autres.
Qu'il soit mis en dessous, à droite du précédent, ou en onglets : nada.

l'image petite s'affiche ok, mais l'agrandissement au survol ne se fait pas.

un souci au niveau des positions relatives ou absolues?



Je refais un petit "UP"...

Pourquoi est-ce ok sur le premier et pas les autres en cas de paragraphes placés  à droite du précédent, pour aligner 4 images côte à côte.

et cela ne permet pas la disposition dans des onglets.

Bref, tout pareil que le visu de test donné par "modefreestyle ".


et c''est ballot, je voulais justement mettre mes photos zoom-ables  dans des onglets, et côte à cote ! lol
Journalisée

Pages: 1 [2] Haut de page Imprimer 
« sujet précédent | | sujet suivant »
Aller à:  


Forum TOWeb © 2012 Lauyan Software Cliquez ici pour vous abonner au flux RSS du forum Règles du Forum  -   Powered by SMF
Powered by SMF 1.1.18 | SMF © 2006-2009, Simple Machines