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

jQuery Discussion :

Délais de 10 secondes d'une notice qui ne revient pas lors des autres visites


Sujet :

jQuery

  1. #1
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut Délais de 10 secondes d'une notice qui ne revient pas lors des autres visites
    Bonjour à vous.

    J'ai fait un petit code jQuery pour supprimer une classe css au moment du démarrage de la page.

    Ma page a une classe avec une balise div qui fait afficher une petite notice au début.
    Mais, je voudrais que cette notice s'efface pour de bon après avoir entrée au bout de 10 secondes
    et qu'elle ne revienne pas sur le navigateur de l'utilisateur ou l'utilisatrice si elle y retourne.

    Je pensais avec l'aide d'un cookie mais je ne vois pas du tout comment faire avec ce que j'ai.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      $(document).ready(function(){    
        $(".maclass").delay(10000).fadeOut();    
      });
    Espérant que quelqu'un puisse m'aider, mes salutations.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Ce n'est pas un problème jQuery. Il faut utiliser session storage.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $( function(){ // forme abrégée de $(document).ready( function( ){
     
      var monDelay = sessionStorage.getItem('monSiteDelay');
     
      console.log( monDelay );
     
      if ( monDelay === null ){
        $( ".maclass" ).delay( 10000 ).fadeOut();
        sessionStorage.setItem('monSiteDelay', '10000');
      }
     
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Ça semble pas marcher.

    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
     
    <script>
    $(document).ready( function( ){ 
      var monDelay = sessionStorage.getItem('monSiteDelay');
      console.log( monDelay );
      if ( monDelay === null ){
        $( ".maclass" ).delay( 10000 ).fadeOut();
        sessionStorage.setItem('monSiteDelay', '10000');
      }
    });
     
    //sessionStorage.couleur = "blue";
    console.log(sessionStorage.monSiteDelay);
    document.write(sessionStorage.monSiteDelay);
    </script>
     
    <div class="maclass">test</div>
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par dancom5 Voir le message
    Ça semble pas marcher.


    1) Je teste toujours mes codes avant de les donner, donc je vous assure que cela fonctionne chez moi.
    2) Je ne peux rien conclure de votre longue explication : "Ça semble pas marcher".
    3) Si vous utilisez un navigateur de l'âge des dinosaures (IE <= 8 ), c'est normal.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    C'est difficile de donner une longue explication puisque rien se passe.
    Le navigateur est Firefox 40.0.3, alors, c'est la dernière.
    Et en faite, mon code est en quelque sorte une explication par démo.

    Pourtant ceci fonctionne pour enregistrer la sessionStorage:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sessionStorage.couleur = "blue";
    console.log(sessionStorage.couleur);
    document.write(sessionStorage.couleur);
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Je viens de tester le code ci-dessous dans Firefox 40.0.3, il agit comme prévu. La division contenant "Hello World" s'efface lors de la première ouverture de la page, et elle reste toujours visible si je recharge la page avec le bouton "Actualiser la page".

    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
    <!DOCTYPE html>
    <html lang="fr" dir="ltr">
    <head>
      <meta http-equiv="cache-control" content="public, max-age=60">
      <meta charset="utf-8">
      <meta name="viewport" content="initial-scale=1.0">
      <meta name="author" content="Daniel Hagnoul">
      <title>Test</title>
      <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/sunny/jquery-ui.css">
      <style>
     
     
      </style>
    </head>
    <body>
     
      <div class="maclass">
        <p>Hello World !</p>
      </div>
     
      <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
      <script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
      <script>
        "use strict";
     
        $( function(){ // forme abrégée de $(document).ready( function( ){
     
          var monDelay = sessionStorage.getItem('monSiteDelay');
     
          if ( monDelay === null ){
            $( ".maclass" ).delay( 10000 ).fadeOut();
            sessionStorage.setItem('monSiteDelay', '10000');
          }
     
        });
     
        $( window ).load( function(){
     
        });
      </script>
    </body>
    </html>

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  7. #7
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Merci pour l'aide. c'est apprécié.

    Mon but est que lors d'une toute première visite dans le site, la notice apparaisse un cour moment et qu'après
    elle disparaisse et ne réapparait plus lors des visites suivantes.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  8. #8
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Je croyais avoir compris qu'il s'agissait d'un problème de session, il faut simplement remplacer sessionStorage par localStorage.

    Mais, une information qui ne doit apparaître à l'utilisateur qu'une seule fois c'est soit une information peu utile (j'allais dire inutile) soit un formulaire d'inscription. Dans ce cas, c'est à traiter au niveau du serveur et avec une base de données des utilisateurs. Voir les forums adéquats (PHP et autres langages serveur).

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/03/2014, 11h52
  2. Réponses: 4
    Dernier message: 18/12/2012, 11h56
  3. lien pour une table qui ne doit pas etre public
    Par raslain dans le forum Oracle
    Réponses: 1
    Dernier message: 12/12/2005, 13h40
  4. Une requête qui ne reconnait pas is not null
    Par LeBauw dans le forum Access
    Réponses: 2
    Dernier message: 08/09/2005, 12h29

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