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 :

Ajout d'une class à un élément


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 11
    Par défaut Ajout d'une class à un élément
    Bonjour,

    Pour un projet que j'ai je souhaiterais ajouter une class aux éléments de ma barre de navigation mais étant plutôt novice en JS j'ai un peu de mal...

    L'objectif au fait c'est d'arrondir les angles de mes liens seulement si à leur survol leur scrollTop = 0 (Si >= 1 l'arrondi ne doit pas être appliqué)

    Je vous joins mon code, je pense qu'il est vraiment pas beau à voir, je suis un peu parti dans tous les sens, mais bon

    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
    $(document).ready(function()
    {
    	$(window).scroll(function()
    	{	
    		$('nav').mouseenter(function()
    		{
    			if($(this).scrollTop() = 0)
    			{
    				$('.navbar a').addClass('navRadius');
     
    				$('nav').mouseleave(function()
    				{
    					$('.navbar a').removeClass('navRadius');
    				});
    			}
    			else
    			{
    				$('.navbar a').removeClass('navRadius');
    			}
    		});
    	});
    });
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    .navRadius
    {
    	border-bottom-left-radius: 5px;
    	border-bottom-right-radius: 5px;
    }

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($(this).scrollTop() = 0)
    l'opérateur de comparaison en javacsript est ==

    et le css pour la bordure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    .navRadius {
      border-radius: 0px 0px 5px 5px;
    -moz-border-radius: 0px 0px 5px 5px;
    -webkit-border-radius: 0px 0px 5px 5px;
    }
    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 !

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 11
    Par défaut
    Effectivement erreur bête qui m'avait échappé, merci

    Par contre mon code ne marche toujours pas, j'ai essayé de le remanier un peu mais bon, sans succès, je me suis dirigé vers la bonne voie déjà ou c'est pas du tout ça ?

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    concernant l'approche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $('nav').on('mouseenter' ,function () {
      // test et action
    });
    $('nav').on('mouseleave' ,function () {
      // test et action
    });

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 11
    Par défaut
    Je ne comprend pas d'où vient mon erreur...

    mon JS ne veut pas appliquer le radius alors qu'en CSS en utilisant la même classe ça fonctionne :/

    Alors ne parlons même pas du fait de le retirer ensuite si scrollTop >= 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    /* Ce code fonctionne */
    .navbar a:before
    {
    	border-bottom-left-radius: 5px;
    	border-bottom-right-radius: 5px;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    /* Celui-ci non */
    $(document).ready(function()
    {
    	$('nav').mouseenter(function()
    	{
    		$('.navbar a:before').addClass('navRadius');
    	});
     
    	$('nav').mouseleave(function()
    	{
    		$('.navbar a:before').removeClass('navRadius');
    	});
    });
    (sans le :before l'effet ne marche pas non plus avec le CSS car j'ai déjà plusieurs choses sur ce menu)

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    $('.navbar a:before').addClass('navRadius');
    • tu l'as défini où/comment en CSS cette class ?

    /* Ce code fonctionne */
    .navbar a:before
    {
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;
    }
    • j'ai du mal à voir comment ce code fonctionne !

Discussions similaires

  1. [Séquence] ambiguité sur l'ajout d'une classe
    Par rwikus09 dans le forum Autres Diagrammes
    Réponses: 1
    Dernier message: 15/12/2009, 17h01
  2. Réponses: 2
    Dernier message: 22/04/2008, 11h13
  3. Ajout d'une classe basique dans une application formulaire
    Par Seb33300 dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 26/04/2007, 12h34
  4. Réponses: 3
    Dernier message: 26/08/2006, 14h03
  5. Attribuer une classe à un élément lors d'un clic
    Par Perceval dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 18/10/2005, 17h19

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