11540 sujets
Re, alors voici le lien sur lequel j'ai avancé un peu ce que tu cherches, ça devrait mieux aller (ça reprends normalement ta structure d'article)
http://jsfiddle.net/Super_baloo8/RMLym/
Comment ça fonctionne ?
- Première étape, je définis mon premier article par ce sélecteur : div.container ul>li>ul>li:first-child (c'est un sélecteur classique CSS)
- la fonction "AppendLinks()" va chercher si il existe un LI frangin supérieur à celui défini à la précèdente étape
- Si il existe, ça signifie qu'il faut créer un lien "Précèdent"
- Il va aussi chercher si un LI frangin inférieur existe
- S'il existe, ça signifie qu'il faut créer un lien "Suivant"
- Après ces vérifications, il va ajouter au sélecteur définit à la première étape les bons liens, plus la class highlight.
Deuxième partie, on va gérer les clics sur ces liens générés, en cliquant sur le lien, on fait de nouveau appel à la fonction AppendLinks(), mais il faut dans un premier temps, changer le selecteur sur lequel sera appliqué la fonction, c'est pour cela que si:
- Le lien est "Précèdent", on cible le précèdent LI, et on applique la fonction
- Le lien est "Suivant", on cible le LI suivant, et on applique la fonction
Dans la fonction, on viendra bien sur supprimer tous les anciens liens créés, supprimer les class "highlight" de tous les "article", et j'ai rajouté une toute petite transition (fadeOut de 150 ms qui va jouer sur l'opacité pour les faire disparaitre, une fois les liens cachés, je les supprimes de la DOM (remove en callback)).
J'espère qu'avec ces explications tu y vois plus clair dans le fonctionnement, et que tu arriveras à tes fins
http://jsfiddle.net/Super_baloo8/RMLym/
(function($) {
jQuery.fn.AppendLinks = function() {
$('#tbr').fadeOut(150, function() {
$(this).remove();
});
$('article').removeClass('highlight');
if (this.prev('li').length) {
var return_links = '<a href="#prev">⇑</a>';
}
if (this.next('li').length) {
var return_links = ((!return_links) ? '' : return_links) + '<a href="#next">⇓</a>';
}
$('article', this).append('<span id="tbr">' + return_links + '</span>').addClass('highlight');
return this;
};
})(jQuery);
$(document).ready(function() {
$('div.container ul>li>ul>li:first-child').AppendLinks();
$('a[href="#prev"]').live('click', function() {
$(this).parents('li').prev().AppendLinks();
return false;
});
$('a[href="#next"]').live('click', function() {
$(this).parents('li').next().AppendLinks();
return false;
});
});
Comment ça fonctionne ?
- Première étape, je définis mon premier article par ce sélecteur : div.container ul>li>ul>li:first-child (c'est un sélecteur classique CSS)
- la fonction "AppendLinks()" va chercher si il existe un LI frangin supérieur à celui défini à la précèdente étape
- Si il existe, ça signifie qu'il faut créer un lien "Précèdent"
- Il va aussi chercher si un LI frangin inférieur existe
- S'il existe, ça signifie qu'il faut créer un lien "Suivant"
- Après ces vérifications, il va ajouter au sélecteur définit à la première étape les bons liens, plus la class highlight.
Deuxième partie, on va gérer les clics sur ces liens générés, en cliquant sur le lien, on fait de nouveau appel à la fonction AppendLinks(), mais il faut dans un premier temps, changer le selecteur sur lequel sera appliqué la fonction, c'est pour cela que si:
- Le lien est "Précèdent", on cible le précèdent LI, et on applique la fonction
- Le lien est "Suivant", on cible le LI suivant, et on applique la fonction
Dans la fonction, on viendra bien sur supprimer tous les anciens liens créés, supprimer les class "highlight" de tous les "article", et j'ai rajouté une toute petite transition (fadeOut de 150 ms qui va jouer sur l'opacité pour les faire disparaitre, une fois les liens cachés, je les supprimes de la DOM (remove en callback)).
J'espère qu'avec ces explications tu y vois plus clair dans le fonctionnement, et que tu arriveras à tes fins

bon je sais pas, ça fait 3hrs que je suis dessus, j'ai pourtant bien compris comment faire marcher le script mais rien à faire, je ne sais plus quoi faire, le 1er next apparait en cacher, qd je vérifie avec firebug il est bien la mais il ne s'affiche pas.
J'ai placé une span id/class="viensici" pour qu'il aille ici a chaque fois qu'on appui mais rien à faire. Le lien ne s'active pas, j'ai du faire une connerie :s
il apparait bien dans le code la span + le lien mais le lien est inactif il ne se passe rien.. Je deviens barge surtout quand on sait que ton code marche parfaitement !
J'ai placé une span id/class="viensici" pour qu'il aille ici a chaque fois qu'on appui mais rien à faire. Le lien ne s'active pas, j'ai du faire une connerie :s
il apparait bien dans le code la span + le lien mais le lien est inactif il ne se passe rien.. Je deviens barge surtout quand on sait que ton code marche parfaitement !
je viens de regarder rapidement, attention, first-child point le selecteur, donc je pense que tu souhaite plutôt :
.blog>li:first-child (sélectionner le premier LI de ton UL.blog ?)
Ensuite, tu as un peu trop toucher le code de base, je m'y perds moi même.
Essaye de produire sur ce forum, le squelette de 3 articles.
Une fois les bases posées ça sera plus simple !
Ton squelette ressemble à un truc comme ça :
.blog>li:first-child (sélectionner le premier LI de ton UL.blog ?)
Ensuite, tu as un peu trop toucher le code de base, je m'y perds moi même.
Essaye de produire sur ce forum, le squelette de 3 articles.
Une fois les bases posées ça sera plus simple !
Ton squelette ressemble à un truc comme ça :
<ul>
<li>
<ul>
<li><article>article1</article>
</li>
</ul>
</li>
</ul>
<ul class="blog">
<li>
<ul>
<li>
<article>
<aside>
<h2><?php echo $articles->titre; ?></h2>
<time datetime="<?php echo date("Y-m-d",strtotime($articles->date)); ?>"><span class="icon-heure"></span><?php echo date("d M Y",strtotime($articles->date)); ?></time><span class="auteur">Par <a rel="author" href="https://plus.google.com/106329878949359854417/posts" target="_blank">Arthur Badalian</a></span>
<?php echo $articles->contenu; ?>
</aside><span id="<?php echo $articles->id; ?>"></span>
<ul class="lb-album-blog sizeimg">
<li>
<a href="../assets/images/<?php echo $articles->image; ?>.jpg" class="blackbox" title="<?php echo $articles->titre; ?>"><img src="../assets/images/<?php echo $articles->image; ?>.png" alt="<?php echo $articles->titre; ?>"><div class="openup"><div class="bouton-blog"></div></div></a>
</li>
</ul>
</article>
</li>
</ul>
</li>
</ul>
C'est le squelette de base, j'ai essayé de faire en sorte que le lien next/prev soit crée juste après l'ul .blog avant le li.
Ensuite j'ai besoin qui me pointe sur l'article suivant.
J'ai placé une span qui fait pointer tous les éléments de l'article mais sans résultat
Alors je fait un vrai squelette pour bien pointer mes sélecteurs :
Par contre, chaque article est un LI ? Ou tout les ARTICLE sont à la suite ?
Est-ce comme ceci (tous les article dans le même LI)
Ou un LI par article ?
Tant que je ne suis pas sur de ta structure, le code n'est pas faisable !
<li>
<article>
<aside>
<h2>Titre</h2>
<time datetime="date">
<span class="icon-heure">Icone</span>
Date
</time>
<span class="auteur">
Par <a rel="author" href="#" target="_blank">Auteur</a>
</span>
Texte de l'article
</aside>
<span id="#id1">ID</span>
<ul class="lb-album-blog sizeimg">
<li>
<a href="#">
<div class="openup">
<div class="bouton-blog">
</div>
</div>
</a>
</li>
</ul>
</article>
</li>
Par contre, chaque article est un LI ? Ou tout les ARTICLE sont à la suite ?
Est-ce comme ceci (tous les article dans le même LI)
<ul class="blog">
<li>
<ul>
<li>
<article>
<aside>
<h2>Article1</h2>
<time datetime="date">
<span class="icon-heure">Icone</span>
Date
</time>
<span class="auteur">
Par <a rel="author" href="#" target="_blank">Auteur</a>
</span>
Texte de l'article
</aside>
<span id="#id1">ID</span>
<ul class="lb-album-blog sizeimg">
<li>
<a href="#">
<div class="openup">
<div class="bouton-blog">
</div>
</div>
</a>
</li>
</ul>
</article>
<article>
<aside>
<h2>Article 2</h2>
<time datetime="date">
<span class="icon-heure">Icone</span>
Date
</time>
<span class="auteur">
Par <a rel="author" href="#" target="_blank">Auteur</a>
</span>
Texte de l'article
</aside>
<span id="#id2">ID</span>
<ul class="lb-album-blog sizeimg">
<li>
<a href="#">
<div class="openup">
<div class="bouton-blog">
</div>
</div>
</a>
</li>
</ul>
</article>
</li>
</ul>
</li>
</ul>
Ou un LI par article ?
<ul class="blog">
<li>
<ul>
<li>
<article>
<aside>
<h2>Article 1</h2>
<time datetime="date">
<span class="icon-heure">Icone</span>
Date
</time>
<span class="auteur">
Par <a rel="author" href="#" target="_blank">Auteur</a>
</span>
Texte de l'article
</aside>
<span id="#id1">ID</span>
<ul class="lb-album-blog sizeimg">
<li>
<a href="#">
<div class="openup">
<div class="bouton-blog">
</div>
</div>
</a>
</li>
</ul>
</article>
</li>
<li>
<article>
<aside>
<h2>Article 2</h2>
<time datetime="date">
<span class="icon-heure">Icone</span>
Date
</time>
<span class="auteur">
Par <a rel="author" href="#" target="_blank">Auteur</a>
</span>
Texte de l'article
</aside>
<span id="#id1">ID</span>
<ul class="lb-album-blog sizeimg">
<li>
<a href="#">
<div class="openup">
<div class="bouton-blog">
</div>
</div>
</a>
</li>
</ul>
</article>
</li>
<li>
<article>
<aside>
<h2>Article 3</h2>
<time datetime="date">
<span class="icon-heure">Icone</span>
Date
</time>
<span class="auteur">
Par <a rel="author" href="#" target="_blank">Auteur</a>
</span>
Texte de l'article
</aside>
<span id="#id1">ID</span>
<ul class="lb-album-blog sizeimg">
<li>
<a href="#">
<div class="openup">
<div class="bouton-blog">
</div>
</div>
</a>
</li>
</ul>
</article>
</li>
</ul>
</li>
</ul>
Tant que je ne suis pas sur de ta structure, le code n'est pas faisable !
Si c'est le premier cas, voici le code : http://jsfiddle.net/Super_baloo8/E9DHc/
Si c'est le deuxième cas, voici le code : http://jsfiddle.net/Super_baloo8/8D87z/
Attention, il n'y a aucune ancre de définis dans ton code, donc je ne peux diriger nulle part.
Le top, serait que l'ID de l'ancre soit défini sur ARTICLE
Donc avec l'ID sur ARTICLE on obtient de bon liens comme :
Si c'est le premier cas, voici le code : http://jsfiddle.net/Super_baloo8/vFxbK/
Si c'est le deuxième cas, voici le code : http://jsfiddle.net/Super_baloo8/WKqL9/
Voilà, normalement tu as toutes les billes pour y arriver !
Si c'est le deuxième cas, voici le code : http://jsfiddle.net/Super_baloo8/8D87z/
Attention, il n'y a aucune ancre de définis dans ton code, donc je ne peux diriger nulle part.
Le top, serait que l'ID de l'ancre soit défini sur ARTICLE
Donc avec l'ID sur ARTICLE on obtient de bon liens comme :
Si c'est le premier cas, voici le code : http://jsfiddle.net/Super_baloo8/vFxbK/
Si c'est le deuxième cas, voici le code : http://jsfiddle.net/Super_baloo8/WKqL9/
Voilà, normalement tu as toutes les billes pour y arriver !
J'oubliais, ta structure est vraiment lourde, pourquoi avoir fait aussi compliqué pour une simple suite d'article ?
Autant rester sobre, une suite de "<article>" les uns en dessous des autres est bon.
Même sémantiquement parlant, je ne vois pas vraiment ce qu'apporte le fait de mettre une liste là dedans.
Mais ceci est un autre sujet, mais je voulais t'en parler quand même !
Autant rester sobre, une suite de "<article>" les uns en dessous des autres est bon.
Même sémantiquement parlant, je ne vois pas vraiment ce qu'apporte le fait de mettre une liste là dedans.
Mais ceci est un autre sujet, mais je voulais t'en parler quand même !
Pour la sémantique on est d'accord, j'ai repris et repris du code et j'ai allourdi à la longue, va falloir que je retape dedans mais ça implique bcp de changement .css et à l'heure actuel j'ai la flemme... Mais je vais devoir retaper c'est sur.
Pour information le code que j'ai donné c'est pour un seul article, chaque bloc d'article à ce code la.
Il commence par : <ul class="blog">
et ce fini par </ul>
Merci pour ton aide en tout cas !
Pour information le code que j'ai donné c'est pour un seul article, chaque bloc d'article à ce code la.
Il commence par : <ul class="blog">
et ce fini par </ul>
Merci pour ton aide en tout cas !
Avec ce que je t'ai donné, les différents exemples, tu devrais être capable de t'en sortir tout seul non ?
http://jsfiddle.net/Super_baloo8/nPsrS/
Modifié par Super_baloo8 (03 Dec 2012 - 11:04)
http://jsfiddle.net/Super_baloo8/nPsrS/
Modifié par Super_baloo8 (03 Dec 2012 - 11:04)