CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Problème getAttribute()

oga95
oga95
Niveau 10
27 septembre 2012 à 18:06:38

Oublier de te remercier, encore une fois :)

vava740
vava740
Niveau 10
27 septembre 2012 à 18:10:13

Pas de problème :noel:

Et le .css() ne s'utilise pas forcément avec deux arguments, avec jQuery beaucoup de fonctions ont des tas d'arguments facultatifs et s'adaptent à ce que tu fournis. Si tu donne qu'un seul argument à .css() il comprend que tu veux qu'il te retourne la valeur en question, et quand tu en mets deux il sait que tu veux définir la valeur :ok:

Et si tu passe un objet il comprend bien que tu veux modifier plusieurs propriétés CSS :p)

oga95
oga95
Niveau 10
27 septembre 2012 à 18:30:46

Pardon d'abuser une fois de plus de ton aide... mais mon menu ne se comporte pas comme il le devrait.

Voila ce que j'ai actuellement:

http://loz.netii.net/27-09-2012_18h28/

Donc j'ai bien mon menu positionné comme je veux, quand je scroll au dessous de lui, il s'attache bien en haut. Mais voila, quand je scroll et que je reviens, le mouseOver fonctionne alors que l’élément ne correspond plus à la condition sur laquelle on travaille depuis cette aprèm.

Que j'utilise sa propriété 'position' ou sa marge par rapport au scrollTop, après avoir dépassé mon élément une fois, ça ne fonctionne plus correctement, as-tu une idée?

Merci, merci, merci, merci, merci, merci, [...] , merci!!

vava740
vava740
Niveau 10
27 septembre 2012 à 19:12:58

Y'a un concept que t'as pas compris avec les évènements.

Il faudrait que tu apprennes à comprendre les bugs tout seul donc je vais essayer de t'aider sans te donner la solution. :noel:

Voilà ton code qui pose problème:

http://wall.deblan.fr/x14db/javascript/1/

Tu vas essayer de traduire tout ça en français (sauf les parties que j'ai commentées qui ne sont pas utiles pour résoudre ton problème).

Poste ici ta traduction, normalement ça devrait t'aider à comprendre ce qui ne marche pas, ça va te paraître évident quand tu auras compris :ok:

oga95
oga95
Niveau 10
28 septembre 2012 à 08:08:19

Je te remercie pour l'aide que tu m'apportes.

Pour chaque scroll lancer la fonction {
-Si l'elem à la classe 'mouse_on_off' alors {
--Si l'elem est en [css] position fixed alors {
---Au survole entrant de la sourie ( lancer l'animation qui envoie l'elem à [css] top 0 en Ton milliseconde avec une accélération 'easeOutBounce'.)

---Au survole sortant de la sourie ( Si le scroll jusqu'en haut est supérieur à la position par défaut de l'elem + sa hauteur - son dépassement alors { l'ancer l'animation qui place l'elem à (sa hauteur - son dépassement) du top en Toff, avec accélération 'easeOutElastic' })
--}
-}
}

Je vois pas :\
C'est au niveau des conditions que ça cloche?

Le mouseOver ou mouseOut ne devrait se lancer que si la condition qu'il soit fixe est vrai (et qu'il ai la bonne classe)

vava740
vava740
Niveau 10
28 septembre 2012 à 10:13:28

Ton problème vient de "Au survol entrant/sortant de la souris".

Ta phrase n'est pas assez précise, et le problème vient de quelque chose que tu n'as apparemment pas compris à ce niveau là.

Rajoute un console.log() dans tes fonctions mouseover et mouseout, tu vas être surpris.

http://wall.deblan.fr/x14dd/javascript/1/

Ça devrait te permettre de piger ce qu'il se passe. :ok:

oga95
oga95
Niveau 10
28 septembre 2012 à 11:01:15

Je ne comprend pas plus qu'avant :question:

J'ai vraiment l'impression d'être *** sur ce coup là :snif:

vava740
vava740
Niveau 10
28 septembre 2012 à 12:13:24

Il se passe quoi avec le console.log ? Ça te met log pas "over" et "out" plusieurs fois au lieu de l'écrire qu'une fois ?

oga95
oga95
Niveau 10
28 septembre 2012 à 12:20:35

à chaque fois que ma sourie bouge? Mais à la limite ça gêne pas trop ça non?

Moi ce qui me gêne vraiment c'est que le menu puisse se faire la mal tout en haut de la page (top: 0;) après que la page ai dépassé mon élément.

On parle bien du même problème?

vava740
vava740
Niveau 10
28 septembre 2012 à 13:14:47

On parle bien du même problème, sauf que ce que tu vois, c'est une fonctionnalité qui ne marche pas correctement. Ce qu'il faut voir, c'est une erreur de conception dans ton code.

$(window).scroll() permet d'attacher une fonction à un évènement, tu l'as dit toi-même dans la traduction:

"Pour chaque scroll lancer la fonction"

elem.mouseover() et elem.mouseout() ce sont des évènements, ça marche exactement de la même façon.

C'est donc pas "Au survol entrant/sortant de la souris" (sous entendu "tant que la condition dans laquelle on a attaché l'élément est vérifiée"), c'est "La condition a été vérifiée à ce moment précis, on attache donc une fonction à l'évènement mouseover/mouseout, désormais pour chaque survol entrant/sortant de la souris, lancer la fonction".

Tu vois où je veux en venir ?

Il faut soit mettre la condition dans la fonction liée à l'évènement, soit faire un else qui détache la fonction en question lorsque la condition n'est plus vérifiée.

En plus de ça, tu attache tes évènements dans ta fonction .scroll(), ce qui fait qu'à chaque scroll tu attache à nouveau ta fonction pour le hover, au final avec les console.log tu aurais du voir que ta fonction mouseover se déclenche autant de fois que tu as roulé la molette sur le site (au lieu d'une seul fois).

Ce que tu veux faire, c'est pas "à chaque scroll, si l'élément est fixe, ajouter une fonction à l'évènement mouseover".

C'est "à chaque scroll, selon le scroll top, passer l'élément en position fixe ou absolue", et un peu plus loin (en dehors de l'évènement scroll), "si l'élément a la classe mouse_on_off, quand on mouseover sur le bouton, si l'élément est fixe on l'anime".

oga95
oga95
Niveau 10
28 septembre 2012 à 13:19:58

Merci pour te ces explications. Je modifier ça dans ce sens :)

Je te remercie encore une fois pour le temps que tu m'as consacré et encore une autre pour m'avoir expliqué plutôt que de m'avoir donné la solution.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment