utilisation des ancres dans une div avec un scroll

Bonjour à tous et à toutes

J’ai un squelette article.html qui affiche l’ensemble de mon article et à droite une div de taille fixe avec un scroll qui affiche tous les liens des articles qui peuvent être affichés par ce squelette.
J’aimerai savoir s’il existe une solution en utilisant les ancres (ou autre chose) qui permet de placer le scroll dans la div de droite sur le lien de l’article affiché dans le squelette ?
De sorte que l’on ne soit pas obligé de scroller dans cette div pour retrouver ce lien.

Merci, en espérant ne pas avoir été trop confus

Yannick

Yannick Fortin a écrit :

Bonjour à tous et à toutes

J'ai un squelette article.html qui affiche l'ensemble de mon article et à droite une div de taille fixe avec un scroll qui affiche tous les liens des articles qui peuvent être affichés par ce squelette.
J'aimerai savoir s'il existe une solution en utilisant les ancres (ou autre chose) qui permet de placer le scroll dans la div de droite sur le lien de l'article affiché dans le squelette ?
De sorte que l'on ne soit pas obligé de scroller dans cette div pour retrouver ce lien.

Merci, en espérant ne pas avoir été trop confus

Yannick

Salut !

j'aime bien les énigmes et du coup je me suis arrêté sur ton message :slight_smile:

de ce que j'ai compris tu voudrais,
quand on est dans un article, mettre en avant le titre de cet article lister dans ton menu de droite (mis en scroll) !!

as tu essayé dans un premier temps d'y rajouter la balise expose, comme ça :
<a href="#URL_ARTICLE" class="[(#EXPOSE)]">#TITRE</a>

pour plus d'informations sur la balise #EXPOSE

en espérant que cela t'aide :wink:

pour ton scroll, c'est quoi exactement ?

jmica

Yannick Fortin a écrit :

Bonjour à tous et à toutes

J’ai un squelette article.html qui affiche l’ensemble de mon article et à droite une div de taille fixe avec un scroll qui affiche tous les liens des articles qui peuvent être affichés par ce squelette.
J’aimerai savoir s’il existe une solution en utilisant les ancres (ou autre chose) qui permet de placer le scroll dans la div de droite sur le lien de l’article affiché dans le squelette ?
De sorte que l’on ne soit pas obligé de scroller dans cette div pour retrouver ce lien.

Merci, en espérant ne pas avoir été trop confus

Yannick

Salut !

j’aime bien les énigmes et du coup je me suis arrêté sur ton message :slight_smile:

de ce que j’ai compris tu voudrais,
quand on est dans un article, mettre en avant le titre de cet article lister dans ton menu de droite (mis en scroll) !!

as tu essayé dans un premier temps d’y rajouter la balise expose, comme ça :
#TITRE

pour plus d’informations sur la balise #EXPOSE
http://www.spip.net/fr_article2319.html#EXPOSE

en espérant que cela t’aide :wink:

pour ton scroll, c’est quoi exactement ?

jmica

Salut jimica

La balise #EXPOSE marche bien pour mettre en avant un item en lui appliquant un style.

Mon problème c’est que j’aimerai que la liste de mes articles que je fais apparaitre dans une div avec un scroll se positionne sur l’article en cours (affiché dans mon squelette)
Je mets un height: 50em; overflow: auto; sur mon div car je peux avoir 200 articles listé dans cette div (une liste d’écrivain classée par ordre alphabétique) et je ne veux pas d’une page qui fasse 10 km de long.
Donc si je veux par exemple lire tous les articles un par un de cette liste, j’aimerai ne pas etre obligé de scroller jusqu’au lien de l’article en cours pour pouvoir accéder à l’article suivant.
J’ai par exemple dans ma liste « VICTOR Gary » situé à la 40e ligne de ma liste, lorsque je suis sur l’article de VICTOR Gary, je voudrais que mon scroll de la liste soit positionné sur VICTOR Gary.
J’ai bien essayé avec du JS et des ancres :

window.onload = function() {
document.getElementById(« #ID_ARTICLE »).location.href = « ##ID_ARTICLE »;
}

et sur chaque lien de ma liste un name=« #ID_ARTICLE »:

[(#TITRE)]

Mais cela ne marche pas, j’ai l’impression que la propriété .location.href n’est pas prise en compte par l’élément div (je ne suis pas un dev en JS)

Merci

Yannick Fortin a écrit :

Yannick Fortin a écrit :
> Bonjour à tous et à toutes
>
> J'ai un squelette article.html qui affiche l'ensemble de mon article et à droite une div de taille fixe avec un scroll qui affiche tous les liens des articles qui peuvent être affichés par ce squelette.
> J'aimerai savoir s'il existe une solution en utilisant les ancres (ou autre chose) qui permet de placer le scroll dans la div de droite sur le lien de l'article affiché dans le squelette ?
> De sorte que l'on ne soit pas obligé de scroller dans cette div pour retrouver ce lien.
>
> Merci, en espérant ne pas avoir été trop confus
>
> Yannick
>
Salut !

j'aime bien les énigmes et du coup je me suis arrêté sur ton message :slight_smile:

de ce que j'ai compris tu voudrais,
quand on est dans un article, mettre en avant le titre de cet article lister dans ton menu de droite (mis en scroll) !!

as tu essayé dans un premier temps d'y rajouter la balise expose, comme ça :
<a href="#URL_ARTICLE" class="[(#EXPOSE)]">#TITRE</a>

pour plus d'informations sur la balise #EXPOSE
Exposer un article dans une liste - SPIP

en espérant que cela t'aide :wink:

pour ton scroll, c'est quoi exactement ?

jmica

Salut jimica

La balise #EXPOSE marche bien pour mettre en avant un item en lui appliquant un style.

Mon problème c'est que j'aimerai que la liste de mes articles que je fais apparaitre dans une div avec un scroll se positionne sur l'article en cours (affiché dans mon squelette)
Je mets un height: 50em; overflow: auto; sur mon div car je peux avoir 200 articles listé dans cette div (une liste d'écrivain classée par ordre alphabétique) et je ne veux pas d'une page qui fasse 10 km de long.
Donc si je veux par exemple lire tous les articles un par un de cette liste, j'aimerai ne pas etre obligé de scroller jusqu'au lien de l'article en cours pour pouvoir accéder à l'article suivant.
J'ai par exemple dans ma liste "VICTOR Gary" situé à la 40e ligne de ma liste, lorsque je suis sur l'article de VICTOR Gary, je voudrais que mon scroll de la liste soit positionné sur VICTOR Gary.
J'ai bien essayé avec du JS et des ancres :

window.onload = function() {
        document.getElementById("#ID_ARTICLE").location.href = "##ID_ARTICLE";
}

et sur chaque lien de ma liste un name="#ID_ARTICLE":

[<a href="#URL_PAGE{auteurs,id_article=#ID_ARTICLE}" class="fiche_auteur" name="#ID_ARTICLE">(#TITRE)</a>]

Mais cela ne marche pas, j'ai l'impression que la propriété .location.href n'est pas prise en compte par l'élément div (je ne suis pas un dev en JS)

Merci

Bonjour !

en mettant un inclure dans ma page article.html comme ceci :
-------------------------------------------------------------------
         [(#REM) test ancre sur article ]
         <INCLURE{fond=inc-ancres} {id_rubrique} {id_article}>

et le fichier inc-ancres.html comme ceci :
-------------------------------------------------------------------
<head>
<SCRIPT language="Javascript">
function goToLink(id)
{
document.getElementById("menu-auteurs").scrollTop = document.getElementById(id).offsetTop;
}
</script>
</SCRIPT>
</head>

<style type="text/css">
<!--
#menu-auteurs {
background-color:#CCCCCC;
border:1px solid #666666;
height:50px;
overflow:auto;
padding:8px;
width:200px;
display:block;
position:relative;
}
-->
</style>

<body onLoad="goToLink( 'ancre#ID_ARTICLE' )"> </body>

<div id="menu-auteurs">
  <BOUCLE-rub-courante(RUBRIQUES) {id_rubrique}>
    <BOUCLE-articles-ancre(ARTICLES) {id_rubrique} {par titre}>
      <div id=ancre#ID_ARTICLE></div>
      <a href="#URL_ARTICLE"[ class="(#EXPOSE)"]>#TITRE</a>
    </BOUCLE-articles-ancre>
  </BOUCLE-rub-courante>
</div>

j'arrive à déplacer l'affichage dans la div à la bonne ligne.

par contre je n'est pas compris dans quel contexte tu es, page article.html ou page auteur.html.

en tout cas le javascript comme je te l'ai mis devrait fonctionner.

...a suivre !!

jmica

PS : moi non plus je ne suis pas un dev javascript :wink: