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

Clic comme sur Twitter

Charpini
Charpini
Niveau 9
01 juillet 2012 à 12:18:23

Bonjour, j’aimerais faire en sorte que quand on clique sur un élément block ça nous emmène vers un lien, sauf si c’est sur un lien <a> contenu dans le block qu’on clique.
Comme sur Twitter quand on déroule un tweet.

Apple a le même effet sur son site, mais sans Javascript : http://www.apple.com/ les liens Watch the video/TV ad sont au-dessus du lien principal.

Malheureusement la solution d’Apple ne peut pas se faire avec du contenu qui est dans le block, c’est juste repositionné par CSS. Je ne peux pas faire ça parce que j’ai du contenu dynamique.

Est-ce que quelqu’un saurait comment faire à la Twitter ? Via Javascript/jQuery svp ?

Thymotep
Thymotep
Niveau 10
01 juillet 2012 à 12:55:58

Salut,

Je ne comprends pas bien pour Twitter, tu parle du fait de cliquer sur un Tweet et que çà ouvre le panneau des informations ? Mais que si on clique sur un lien du tweet, çà ouvre ce lien là mais pas le panneau du Tweet c'est çà ?

vava740
vava740
Niveau 10
01 juillet 2012 à 13:04:52

Salut, je sais pas ce qui te pose problème, tu peux imbriquer plusieurs liens et ça marchera. :ok:

Exemple :

<a href="#foo">
<span style="display:block;width:500px;height:500px;>
<a href="#bar">lien interne</a>
</span>
</a>

Si tu clique sur "lien interne" ça t'amène bien à #bar" mais si tu clique sur le bloc général ça t'amène à #foo. :ok:

Par contre tu dois mettre uniquement des éléments inline dans ton lien, là j'ai utilisé un span en display:block, mais si tu mets une DIV certains navigateurs te la ressortent du lien en parsant le DOM.

Charpini
Charpini
Niveau 9
01 juillet 2012 à 19:21:38

Oui Thymotep c’est bien ça.

vava ça ne marche pas comme ça, en tout cas pas sur Chrome et Firefox.

vava740
vava740
Niveau 10
01 juillet 2012 à 19:36:28

En effet, mais je viens de m'apercevoir sur le site d'apple qu'ils ont fait un truc tout con :o))

Y'a un lien avec l'image dedans, et après les deux autres liens qui sont mis par dessus en position absolue :noel:

Exemple : http://wall.deblan.fr/xf8/html/1/

Thymotep
Thymotep
Niveau 10
01 juillet 2012 à 20:19:36

Charpini :d) En jQuery c'est simple :)

En fait, tu fais ton div qui contient le "tweet", qui lui-même peut contenir des liens etc, avec leur comportement normal quoi :)

Et en jquery tu fais un truc du genre :

$("#div").bind('click', function() {
// L'action que tu veux au moment du click
});

Si tu as besoin de récupérer la valeur (ID par exemple) du block, tu utilise la class pour le "click" et tu fais un $(this).attr('id'); pour récupérer la valeur de l'ID :)

Charpini
Charpini
Niveau 9
02 juillet 2012 à 16:31:07

Merci, j’aurais dû le deviner que jQuery avait pensé à ce comportement…

Par contre je sais pas quoi faire pour que ça marche comme il faut, là j’ai fait :

$('#forum div').bind('click', function() {
location.href = '?test';
});

Clic simple ça va, par contre ça merde quand on utilise le clic molette !

Thymotep
Thymotep
Niveau 10
02 juillet 2012 à 17:14:13

Surement l'event "click" qui ne comprend pas la wheel :) Il y a des plugins jQuery à load pour çà :d) http://brandonaaron.net/code/mousewheel/demos par exemple :)

Charpini
Charpini
Niveau 9
02 juillet 2012 à 18:47:30

Ça fait cher la feature… Heureusement il y a un moyen plus simple (j’ai regardé comment pjax gérait ça) :
$('#forum div').bind('click', function() {
 if (event.which > 1 || event.metaKey || event.ctrlKey) {
  open('?topic=' + $(this).data('id'));
  return;
 }
 location.href = '?topic=' + $(this).data('id');
});

Par contre avec open() si je clic sur un lien contenu dans le div ça m’ouvre ce lien ET le nouvel onglet. Il faudrait que ça fasse comme avec le comportement du clic normal, si on clic sur un lien ça annule le comportement Javascript.

Charpini
Charpini
Niveau 9
03 juillet 2012 à 18:00:06

J’ai trouvé, il faut ajouter event.stopPropagation(); après open().

Charpini
Charpini
Niveau 9
03 juillet 2012 à 18:22:41

Je retire ce que j’ai dit, ça marchait parce que le JS était pas encore chargé. :-(

Je pense que je vais utiliser la méthode d’Apple, même si ça me fait changer de design.

Thymotep
Thymotep
Niveau 10
03 juillet 2012 à 18:59:21

Pourquoi vouloir absolument que cela fonctionne avec le clic du milieu de la souris, c'est un comportement non intuitif ?

Charpini
Charpini
Niveau 9
03 juillet 2012 à 20:54:35

Parce que c’est censé être un lien, en plus grand.

Exemple : http://puu.sh/FBEN les recherches de DuckDuckGo, ce serait sympa de pouvoir cliquer n’importe où dans la zone grise pour que ça amène au lien, mais on est obligé de cliquer sur le lien bleu. J’aimerais que mes utilisateurs aient l’opportunité d’être plus feignant que ça.

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