IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

resizer une image de fond en fonction de la resolution [Infos]


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 44
    Points
    44
    Par défaut resizer une image de fond en fonction de la resolution
    PS: J'ai posté sur le forum HTML/CSS mais on m a dit que la reponse se trouverait du coté de javascript donc revoici la question:
    bonjour, je fais un site perso avec une image de fond perso selon le modele suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    body {
       background-image:  url(Images/fond.jpg);
       background-repeat : no-repeat;
       background-attachment : fixed;
       text-align: center;
    }
    j ai donc mon image qui saffiche en fond sur ma page le probleme c est que je voudrais la redimensionner en fonction de la resolution d'ecran du poste client car sur mobn portable par exemple ca passe nikel mais si j'utilise mon poste fixe, l'image est troppetite et j ai une bande blanche en bas et a droite de l ecran ce qui fait tout moche ......
    J'ai trouvé une fonction qui s appelerait resizeTo mais qui s utilise avec l'objet window.. donc je ne sais pas trop si comment cela pourrait m'aider si la solution venait de la ....
    merci[/code]

  2. #2
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut!

    • Merci de chercher une réponse dans la FAQ Javascript
    Google.fr est ton ami! (avec "javascript background image")

    L'exemple suivant sélectionne automatiquement une image parmis 5 images JPG:
    640x480.jpg, 800x600.jpg, 1024x768.jpg, 1152x864.jpg et 1280x1024.jpg.
    Remplace la balise <body> de ta page par le code ci-dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <noscript>
    <body>
    Javascript est nécessaire pour afficher correctement cette page!
    </noscript>
     
    <script>
    tabw=new Array(640, 800, 1024, 1152, 1280);
    tabh=new Array(480, 600, 768,  864,  1024);
     
    if(!document.all){ w=window.innerWidth; h=window.innerHeight; }
    else { w=document.documentElement.offsetWidth; 
           h=document.documentElement.offsetHeight; }
    for(i=tabw.length-1;i>=0;i--) if((w>=tabw[i])||(h>=tabh[i])) break;
    if(i<tabw.length-1) i++;
    document.write('<body style="background-image:url('+tabw[i]+'x'+tabh[i]+'.jpg);">'); 
    </script>
    La prochaine fois, merci de chercher un peu avant de poster!

    à+

    De retour parmis vous après 10 ans!!

  3. #3
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Une autre solution pour avoir une image proportionnelle lorsqu'on redimensionne la fenêtre...
    Mis au point cette nuit (je suis trop fort!!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <html>
    <head>
    </head>
    <body>
     
      <img style="position:absolute;left:0px;top:0px;width:100%;height:100%;"
       src="test.jpg" alt=""/>
      <div style="position:absolute;left:0px;top:0px;width:100%;height:100%;">
     
      Contenu de la page ici
     
      </div>
     
    </body>
    </html>
    à+
    De retour parmis vous après 10 ans!!

  4. #4
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    	<?php include('menu.php'); ?>
    <style type="text/css">
    /*
    body {
    	background-image:  url(Images/fond.jpg);
    	background-repeat : no-repeat;
    	background-attachment : fixed;
    	text-align: center;
    }*/
    .Style1 {
    	color: #000099;
    	font-style: italic;
    	font-weight: bold;
    }
    .Style2 {
    	color: #F70C22;
    	font-style: italic;
    	font-weight: bold;
    	font face :Georgia, Times New Roman, Times, serif
    }
     
     
    </style>
    </head>
     
     
    <noscript>
    <body>
    Javascript est nécessaire pour afficher correctement cette page!
    </noscript>
     
    <script>
    tabw=new Array(640, 800, 1024, 1152, 1280);
    tabh=new Array(480, 600, 768,  864,  1024);
     
    if(!document.all){ w=window.innerWidth; h=window.innerHeight; }
    else { w=document.documentElement.offsetWidth;
           h=document.documentElement.offsetHeight; }
    for(i=tabw.length-1;i>=0;i--) if((w>=tabw[i])||(h>=tabh[i])) break;
    if(i<tabw.length-1) i++;
    document.write('<body style="background-image:url('+tabw[i]+'x'+tabh[i]+'.jpg);">');
    </script>
     
    </body>
    </html>
    J'ai essayé ca et la j ai pas d image de fond qd a ta deuxieme solution ca ne marche pas chez moi j ai justel image en haut a droite point...

  5. #5
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    J'ai essayé ca et la j ai pas d image de fond
    Tu n'as même pas essayer de comprendre le fonctionnement je paris!
    qd a ta deuxieme solution ca ne marche pas chez moi
    Je ne vais t'aider davantage edge.
    Chez moi, les 2 solutions fonctionnent.
    De retour parmis vous après 10 ans!!

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Juste une question tu as bien 5 images différentes, une pour chaque résolution ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    Alors Sub0 sache que si j ai essayé de comprendre le fonctionnement contrairement a ce que tu crois.... et donc j ai bien compris qu on recupérais la largeur de l ecran par la hauteur pour afficher en fond largeurXhauteur.jpg mais moi qd je fais ca il m affiche une fond blanc comme s'il ne trouvait pas l image correspondante alors que j ai bien toutes mes images stockées dans un nom au bon format avec les minuscules et tout bien comme il faut... je ne mle permet pas de poster pour récupérer des bouts de code et point barre comme ca...
    Par contre ton deuxieme code je l ai pas tres bien compris je me demande s il repons pas plutot a un autre probleme qui concerne le redimensionnement de fenetre et non de definition d'ecran mais comme suis pas encore super a l aise en javascript je ne sais pas trop mais c est pas faute d avoir essayé ... et je compte bien continuer a essayer de trouver...
    Maintenant je te remercie de m'avoir aidé et franchement je veux pas que tu pense que je t'exploite pour faire mon site parce que c est pas mon genre
    Voila.

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    as tu remarqué que la balise body est entre duex balises noscript ???
    ainsi si javascript n'est pas activé la balise body s'ecrit simplement tandis que si javascript est activé le premier body ne s'ecrira pas au profit du document wirte qui lui adjoint un style ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    oui j ai remarqué ca meme en fait je suppose que si javasrpit n est pas activé la page s affiche simplement mais on devrait voir au mois qq part:
    Javascript est nécessaire pour afficher correctement cette page!
    et ca je ne l ai pas
    de plus je pense que javascript est activé vu que j arrive a effectuer d'autres scripts...

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    le plus sur c'est de nous montrer ton code intégral ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    Il est plus haut la c est le 4eme message

  12. #12
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    MMMmmmmmmm je crois que j ai compris en fait je me demande si c pas dans mon CSS en tete de code qui surcharge mon code javascript .... mais dans ce cas je comprens pas pas pkoi mon image de fond est toute blanche il devrait plutot m'afficher l image fond.jpg .....
    faudra que je regarde toutca chez moi ce soir car la suis au boulot et donc je peut pas tester ca ....

  13. #13
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    oui commence par virer le css du body ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  14. #14
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Ok, autant pour moi (j'ai apprecié ta réaction).

    En fait, pour le 1er code, il sagit de préparer 5 images à des résolutions fixes. Le programme Javascript va alors chercher quelle est l'image qui est plus grande que la fenêtre. Ainsi, tu auras ton body qui sera toujours rempli. Si tu diminue la taille de la fenêtre, l'image s'adapte automatiquement lorsque la taille correspond à une autre résolution. J'ai testé ce code avec IE, Mozilla, NetScape et Opera, ça m'étonnerait qu'il ne fonctionne pas...

    Pour le second code, effectivement, le CSS peut poser problème. Là, il sagit d'afficher une simple image avec les propriétés de style pour que l'image s'ajuste à la taille de la fenêtre. Pour pouvoir afficher d'autres éléments sur cette image, on place un DIV par dessus qui s'ajuste lui aussi à la taille de la fenêtre.

    Il n'existe pas d'autres solutions, je peux te l'assurer! J'ai longuement chercher sur le net. Ou alors peut-être avec PHP et la librairie GD, mais necessite de recharger la page... Peut-être aussi en utilisant "Image" de Javascript, mais ça revient au même que le second code que je t'ai donné... SpaceFrog te conseillera mieux que moi.

    à+
    De retour parmis vous après 10 ans!!

  15. #15
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    il reste la solution de l'image non pas en background à proprement parler mais dans un div de z-index d'arrière plan ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  16. #16
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    bon je persiste et signe ca marche pas chez moi meme apres avoir enlever le style body du css......
    je penbse que ca vient d'ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.write('<body style="background-image:url('+tabw[i]+'x'+tabh[i]+'.jpg);">');
    mes images se trouvent dans le repertoire Images
    j ai donc essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.write('<body style="background-image:url('Images/'+tabw[i]+'x'+tabh[i]+'.jpg);">');
    mais ca veut pas passer non plus ..... [/code]

  17. #17
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    faut pas escaper le slash ?
    ou mettre des antislashs?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  18. #18
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    yess exact bien joué SF merci beaucoup

    j essaierais ta deuxieme soluce dans qq jours SUB0 parce qu en terme de code elle me plait plus mais la ce soir j ai pas le courage merci en tout cas de votrre aide

  19. #19
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    juste pour info ca marche nikel ta solution Sub c vraiment nikel ce que je voulais le div ca gere vachement bien

  20. #20
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    re,

    et si le contenu de la page est superieur à la hauteur visible (document.body.clientHeight / window.innerHeight) ?
    tu geres comment le scrolling ?



    L.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/08/2009, 13h19
  2. resizer une image de fond en fonction de la resolution
    Par kitten13 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/09/2006, 14h21
  3. Réponses: 6
    Dernier message: 21/09/2006, 17h33
  4. Ne pas répéter une image de fond
    Par valette dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 05/01/2005, 21h49
  5. Comment mettre une image en fond de JFrame
    Par marc26 dans le forum Débuter
    Réponses: 3
    Dernier message: 19/01/2004, 17h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo