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 :

auto switch résolution ?


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien Supérieur en Support Informatique
    Inscrit en
    Juin 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Supérieur en Support Informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 41
    Points : 44
    Points
    44
    Par défaut auto switch résolution ?
    1) Bonjour à tous, je travail actuellement sur une page et je suis confronté à un soucis de centrage à l'intérieur d'un bloc.

    Tout le site et mes blocs se cadrent et s'ajustent bien comme je le désire, je souhaiterai juste switcher un padding en fonction de la résolution client sans rien changer d'autre.

    Par exemple par défaut dans mon css j'ai mis pour une résolution de 1024*768, un padding à 3% pour ce bloc, je souhaiterai le passé automatiquement à 5% si je passe ma résolution en 1280*1024 par exemple...

    Je pense que cela est faisable en javascript (c'est pourquoi je poste ici) mais je n'ai pas trouvé mon bonheur

    L'un d'entre vous aurait'il un petit script sous la main susceptible de m'aider SVP ?

    2) Une autre des pistes que j'ai tenté d'explorer étais de gérer ce padding en fonction du ratio (un pour le 4/3, un pour le 16/9 par exemple) mais je n'ai pas trouvé non plus comment gérer le ratio...

    Cordialement

  2. #2
    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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Tu peux charger un css en fonction de la résolution détectée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert('Votre resolution est '+screen.width+'x'+screen.height);

  3. #3
    Membre du Club
    Homme Profil pro
    Technicien Supérieur en Support Informatique
    Inscrit en
    Juin 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Supérieur en Support Informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 41
    Points : 44
    Points
    44
    Par défaut
    Bonjour SpaceFrog, merci de ta réponse rapide qui me confirme dans un 1er temps que c'est faisable .

    Je connais effectivement la fonction alert qui permet d'afficher un message (en l’occurrence : la résolution) mais je ne sais pas comment codé le switch.

    J'ai fait un css du style :
    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
     
    <style type="text/css">
    <!--
    #picture1024 {
    	padding: 5%;
    	width: 500px;
    	float: left;
     
    #picture1280 {
    	padding: 10%;
    	width: 500px;
    	float: left;
     
    // ect...
    -->
    </style>
    Le script que je cherche à faire pour mètre dans mon body serai en quelque sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <script type="text/javascript">
    if "+screen.width+" == "1024" (<div id="picture1024">)
    else if "+screen.width+" == "1280" (<div id="picture1280">)
    else ect...
    </script>
    Mais je ne sais pas comment codé un équivalent en javascript...

  4. #4
    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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    non tu n'y es pas du tout ...

    regarde plutôt du coté des feuilles de styles externes.
    Un feuille par résolution
    et du coup tu fais pointer la balise de style vers le fichier en fonction de la resolution

  5. #5
    Membre du Club
    Homme Profil pro
    Technicien Supérieur en Support Informatique
    Inscrit en
    Juin 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Supérieur en Support Informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 41
    Points : 44
    Points
    44
    Par défaut
    ok, j'ai donc essayé sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <script type="text/javascript">
    if (screen.width>=1024){
        <link href='styles1024.css' rel='stylesheet' type='text/css'>
    }
    else{
        <link href='styles1280.css' rel='stylesheet' type='text/css'>
    }
    </script>
    Avant de trouver un script que j'ai adapté et qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <link id="reso" href="scripts/styles.css" rel='stylesheet' type='text/css'>
    <script type="text/javascript">
    var O_Style = document.getElementById('reso');
    if( O_Style){
      if( screen.width == 1024)
        O_Style.href = "scripts/styles1024.css";
      else
      if( screen.width == 1280)
        O_Style.href = "scripts/styles1280.css";
    	else O_Style.href = "scripts/styles.css";
    }
    </script>
    Merci de m'avoir orienté SpaceFrog , grâce à cela je peux continuer d'écrire ce dont j'ai besoin, Bonne soirée à tous

  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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    L'erreur de ton premier code est de mélanger html et js ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (screen.width>=1024){
        <link href='styles1024.css' rel='stylesheet' type='text/css'>
    }
    On ne peut pas "rediger" du code html au milieu d'un script js de la sorte
    (éventuellement un document.write, mais a utiliser avec parcimonie dans un contexte limité)

    Ce que tu as parfaitement rectifié dans le second code en passant par le DOM
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var O_Style = document.getElementById('reso');
    pour récupérer l'element link
    et lui attribuer conditionnellement le href :

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CSS 3] Redimensionnement auto image background suivant résolution visiteur
    Par woodix dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 07/08/2014, 19h13
  2. Réponses: 3
    Dernier message: 23/02/2010, 14h18
  3. Auto adaptation selon la résolution
    Par 6su7 dans le forum Silverlight
    Réponses: 4
    Dernier message: 10/02/2009, 22h36
  4. [XHTML] Golive 6 ( résolution auto )
    Par bobjack dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 18/04/2006, 02h28
  5. Réponses: 8
    Dernier message: 17/05/2002, 09h08

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