cs_jpabm
Messages postés1Date d'inscriptionmardi 30 octobre 2007StatutMembreDernière intervention20 novembre 2010
-
20 nov. 2010 à 15:15
ChasseurDeChimeres
Messages postés292Date d'inscriptionmercredi 7 novembre 2007StatutMembreDernière intervention15 janvier 2013
-
21 nov. 2010 à 00:31
Bonjour à tous.
Je me lance dans le Javascript et je viens de créer un premier Scipt, qui me permettra de faire apparaitre des photos ou des vidéos dans une div (appelé Div droite)en cliquant sur un lien texte dans une liste d'une autre div (appelé div gauche).
J'ai pris un script existant et je l'ai modifié. Seulement les photos apparaissent bien à droite, mais reste en page et se mette les unes à la suite des autres au fur et à mesure que je clic sur les liens.
Quelqu'un pourrait-il m'aidez et me dire là ou j'ai fait une erreur ou un oubli ?
Merci d'avance
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 20 nov. 2010 à 16:17
Salut,
Premier sujet et première erreur serait-je tenté de te répondre
Tu t'es trompé de forum : ici c'est le forum java et non javascript : ces 2 langages n'ont pas grand chose en commun si ce n'est leur nom, ce qui induit pas mal de monde en erreur.
Je déplace vers le forum de javascript.
______________________________________
AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 20 nov. 2010 à 23:09
Bonjour,
Je me lance dans le Javascript il est donc nécessaire de ne pas commencer par l'erreur de dupliquer les fonctions qui font la même chose.
Quand on regarde ces deux fonctions
function div_droite3(action) {
if (action == 'afficher') {
document.getElementById('div_gauche3').style.visibility = 'visible';
}
}
function div_droite4(action) {
if (action == 'afficher') {
document.getElementById('div_gauche4').style.visibility = 'visible';
}
}
on note, pour commencer qu'une seule chose change l'ID
ensuite tu passes un argument que tu n'exploites pas entirement, que fais tu si action est différent de "afficher" ?
une technique consiste à passer en paramètre l'ID de l'élément à traiter en plus de l'action, ce qui donnerait
//---------------------------------------
function div_droite( id_element, action) {
if (action == 'afficher') {
document.getElementById( id_element).style.visibility = 'visible';
}
else {
// Action dans le cas contraire par exemple
}
}
ce qui va clarifier sérieusement ton script, surtout si tu as 50 élément à traiter.
Tu aurais pu également traiter cela ainsi
//---------------------------------------
function div_droite( id_element, action) {
//-- recup objet
var oDiv = document.getElementById( id_element);
//-- si existe
if( oDiv){
//-- affection etat
oDiv.style.visibility = action;
}
}
dans ce cas tu fais un appel comme suit
St Florent
Un autre point maintenant concernant les DIVs masquées, il est préférable de mettre le display à none plutôt que la visibility à hidden, c'est un problème d'occupation de l'espace du document, display:none n'affiche pas mais n'occupe pas de place dans le document alors que visibility:hidden n'affiche pas mais laisse la place libre dans le document.
Quelqu'un pourrait-il m'aidez et me dire là ou j'ai fait une erreur ou un oubli ? Il te faut penser à cacher les autres avant d'en afficher une suivante.
;O)
ChasseurDeChimeres
Messages postés292Date d'inscriptionmercredi 7 novembre 2007StatutMembreDernière intervention15 janvier 20133 21 nov. 2010 à 00:31
Salut;
Il est normal quelles se mettent à la suite, pour quelles se superposent il te faudrait leur donner une position "relative" identiques à chacune en css.
Une solution plus efficace serait de modifier non pas la propriété "visibility" mais la propriété "display" que tu pourras définir en "none" (l'élément n'est pas là") ou "block" (l'élément est un bloc).
La solution la plus propre est de modifier le contenu de ta div grâce à sa propriété "innerHTML" :
<script type="text/javascript">
function setImg(id_img) {
document.getElementById('div_gauche').innerHTML = "";
}
</script>
Le port
St Florent
div onclick="setImg('3');" class="div">
Île Rousse
Calvi