Collegamento ancora ai singoli blocchi testo dell'oggetto accordion/text faq
Autor: Francesco M.
Visited 1113,
Followers 2,
Udostępniony 0
Buongiorno a tutti.
E' possibile inserire delle ancore (link) ad ogni singola voce del titolo dell'oggetto accordion text?
Ho creato un elenco con oltre 100 canti, ed avrei bisogno, dato un elenco alfabetico, che alla pressione sul titolo del canto mi porti all'apertura del blocco di testo all'interno dell'accordion TEXT/Faq.
Non so se è possibile,
Ho provato ad inserire vicino al titolo <a id="canto50"></a>
e al canto dato il link #canto50
ma non mi funziona...
Esiste qualche soluzione?
Grazie
Posted on the
... di base gli ancoraggi vanno usati per gli scopi storicamente prefissati...
... per altri eventi al di fuori della norma occorrerà condizionare le azioni quando possibile con codice EXTRA...
.... per approfondimenti ed altre idee vedere anche qui:
https://helpcenter.websitex5.com/pl/post/250700
.
ciao
.
Autor
Ti ringrazio per la risposta, ma io cercavo la soluzione al contrario. In effetti vorrei inserire le ancore sui titoli o sull'inizio del testo dei singoli blocchi di testo, e poi, da un elenco testuale o a griglia, dove ho l'elenco alfabetico, cliccare sul numero o titole e posizionarsi sul blocco scelto o almeno all'inizio dell'accordion text/faq.
Non so se con qualche codice sarebbe possibile
Il link della pagina è www.collegiatamarigliano.it/canti.html
Ho provato alcuni canti, anche al canto 50 (inizia con la h) che dovrebbe essere centrale
per documentarsi un pochino, visto che il codice che hai inserito tu è errato, dai un'occhiata qui...
https://www.serverplan.com/blog/link-ancora-html/#gref
... x Francesco, ...ho visionato il tuo LINK, ed ho notato che non hai posizionato le Ancore ed i relativi Ancoraggi...
... rimetterci le mani adesso, ora come ora a cose già fatte, ne verrebbe fuori un lavoro impegnativo con gli strumenti del programma, e forse con un poco di tempo in meno piazzando le Ancore manualmente, ma sempre impegnativo rimane;... diversi giorni con tutti i controlli da verificare...
... e poi a grandi linee secondo me andrebbe comunque integrato una variante del mio esclusivo SuperCodice che hai visto nel Topic che ti ho indicato prima...
...
... ad occhio e croce, e codice per codice EXTRA, posso immaginare e quindi valutare in base alle precedenti ed esclusive esperienze nel Forum, che con i miei SuperCodici per le Ancore e gli Ancoraggi da terza pagina, potresti risolvere in due secondi, con due soli e semplici copia/incolla, ...quasi una magia...
... quello che si potrebbe ottenere con i miei SuperCodici sarebbe l'assegnazione dinamica automatica delle Ancore nella pagina Accordion "canti.html", ... ed anche l'assegnazione dinamica automatica di tutti gli Ancoraggi nella pagina "elenco-alfabetico-canti.html"...
...
... se ti interessa, e se ti interessa procedere in questo senso nel breve, e se te la senti di affrontare questo mondo EXTRA, ...avvisami, ed io ritornerò qui, ... altrimenti come non detto, fa niente, ed ignora il mio Post...
.
ciao
.
Autor
Gentissimo KolAsim, è vero le ancore non le ho ancora inserite perchè stavo provando e non riuscivo.
Sono comunque pronto ad imparare sempre cose nuove ed EXTRA..
Se spiegarmi come affrontare la situazione sono pronto a questa nuova sfida.
Tieni presente che per tempo, momentaneamente, non riuscirò a leggere le tue risposte immediatamente, ma con qualche giorno di ritardo. Grazie per il tuo fattivo interessamento ed aiuto
... OK ...preso a ferro caldo potresti risolvere anche immediatamente...
... ricontrollo la situazione generale per qualche eventuale ritocco dedicato alla tua struttura e ritorno dopo...
.
... assegna gli ancoraggi alla colonna dei numeri...
.
... codice per le proprietà /HEAD della pagina "elenco-alfabetico-canti.html":
<script>
$("document").ready(function() { //K>;
/** -- assegnazione dinamica Ancore - by KolAsim -- **/
ritardoK= 3; // = secondi di ritardo
setTimeout(function() { //K1>;
nrK =$( "#imTableObject_57_03_tab0 .cf1" );
for(var i = 0, TotK = nrK.length; i < TotK; i++){//K2>;
linkK="canti.html#" + $(nrK[i]).text() ;
cantoK=$(nrK[i]).text();
$(nrK[i]).wrap('<a href="'+linkK+'" style="text-decoration:none" title="leggi il canto '+cantoK+'"></a>')
} //K2<<;
//alert(TotK);
},ritardoK * 1000);//K1<<;
}) //K<<;
</script>
.
... incollare il codice nelle Proprietà Pagina, cioè qui:
> Passo 3 - Mappa > Finestra 'Proprietà Pagina' > Le opzioni della Sezione Esperto >
▪Codice personalizzato: > 3^ opzione > Prima della chiusura del tag HEAD
.
.
... avvisami quando avrai aggiornato online per poter verificare...
... se sarà regolare poi si passerà al passaggio successivo per il codice che assegnerà le Ancore nella pagina "canti.html"...
.
Autor
Ho aggiornato il sito con il codice che mi hai postato.
Ho provato anche ad in serire al primo canto <a href="#canto1"></a>
ed al canto 61 <a href="#canto61"></a>
ed ovviamente non funziona.
Aspetto tue indicazioni.
Grazie ancora per il tuo interessamento
... OK ... ho controllato, ...gli Ancoraggi vendono correttamente assegnati e rispondono bene...
... non ci avevo pensato prima, ma se ti interessano gli Ancoraggi anche alla colonna del testo, si possono facilmente assegnare anche a questi con un piccola modifica al codice; ... nel caso avvisami per fare questa modifica...
.
... ...riguardo al codice del tuo tag <a>, essendo che gli Ancoraggi assegnati dal mio codice sono solo numerici(*) e che il il valore dell'Ancora va dichiarata nell'attributo "ID", di conseguenza in questo caso il codice dell'Ancora dovrebbe essere così:
<a id="61"></a>
(*) - se invece li vuoi in formato alfanumerico, per esempio canto61, avvisami...
.
... praticamente per ora per il primo passo sei a posto, ...salvo nel caso di applicare le modifiche accennate prima, sempre con un copia/incolla che sai già fare..
... adesso ricontrollo la situazione della pagina canti.html ... e poi ritorno qui per il secondo passo...
.
... OK ... secondo passo...
... codice per le proprietà della pagina canti.html ...came fatto in precedenza :
-----------------------
<script>
$("document").ready(function() { //K>;
/** -- Ancoraggio dinamico ritardato da terza pagina - by KolAsim -- **/
/** -- Assegnaziona Ancore dinamica - by KolAsim -- **/
ritardoK= 3; // = secondi di ritardo
setTimeout(function() { //K1>;
anchorK = window.location.hash;
coll_ancoraK = anchorK ;
controlloK1()
},ritardoK * 1000);//K1<<;
return
}) //K<<;
//---------------f K2 (3,4,5)---------
function controlloK1() {//K2>;
$(".opened").click();
K = $( ".accordion_title_text" );
nK = 0;
setTimeout(function() {//K3>;
for(var i = 0, TotK = K.length; i < TotK; i++){//K4>;
nK += 1
k = $(K[i]).text();
$(K[i]).parent().parent().prepend('<a id= "'+nK+'"></a>');
setTimeout(function(){ //K5>;
x5engine.utils.location(anchorK, null, false);
}, 1000); //K5<<;
}//K4<<;
offsetK();
}, 1000); //K3<<;
} //K2<<;
//---------------f K6 (6,7,8)---------
function offsetK() { //K6>;
$(coll_ancoraK).click()
setTimeout(function(){ //K7>;
hK=$("#imStickyBarObjects").height();
scrollK=$(window).scrollTop();
scrollK=scrollK-hK;
$('html,body').animate({ //K8>;
scrollTop: scrollK
}, 400);//K8<<;
}, 1000);//K7<<;
} //K6<<;
</script>
.
Autor
Ciao KolAsim. Ancora ti rigrazio per la prima magia che con poche righe di codice mi crea tutti i numeri con collegamento.
Adesso ho incollato il tuo secondo codice, ma già stranamente non mi evidenzia le varea funzioni colorate (commenti in verde, variabili etc. )
e una volta pubblicato mi riporta lo script in alto.
Ti allego le immagini dell'inserimento dei due script, dove si evidenzia che il primo è evidanziato con tutti i colori, mentre il secondo no.
Autor
seconda immagine
Autor
Scusa ancora, Ho inserito nel corpo dei canti da 1 a 15 il tag <a id="1"></a> fino a <a id="15"></a>
... scusami, devo aver commesso io un errore di battitura...
... correggi l tag:<scritpt> ... </scritpt>
... in: <script> ... </script>
.
... prova, e nel caso ci risentiamo domani...
Autor
... Ho provato velocemente.
Ho anche provato a ridurre il ritardoK= 3; a 1 e poi a moltiplicarlo anche solo per 100 e no 1000
Ho visto che va bene, ma dopo il salto all'apertura dell'accordion text nel canto esatto, ritorna di nuovo all'inizio pagina.
Cambiando i secondi e il fattore di moltiplicazione nelle prove va più immediato, però risalta sempre all'inizio pagina. Se ci sarebbe anche una soluzione per lasciarlo nella posizione esatta sarebbe ottimo. Ma anche così mi dà comunque il canto aperto
ps.ho inserito le ancore fino al numero 30.
E ho lasciato i secondi a 3 ed il fattore di moltiplicazione a 1000
Grazie Ancora
... ho controllato, e dal mio PC funziona bene...OK...
... invece dal mio smarphone sballa...
... prova a sostituire il codice in "canti.html" con questo, ove ho eliminato l'effetto frizione del programma che effettivamente non serve da terza pagina...
... avvisami per controllare online...
<script>
$("document").ready(function() { //K>;
/** -- Ancoraggio dinamico ritardato da terza pagina - by KolAsim -- **/
/** -- Assegnaziona Ancore dinamica - by KolAsim -- **/
ritardoK= 3; // = secondi di ritardo
setTimeout(function() { //K1>;
anchorK = window.location.hash;
coll_ancoraK = anchorK ;
controlloK1()
},ritardoK * 1000);//K1<<;
return
}) //K<<;
//---------------f K2 (3,4,5)---------
function controlloK1() {//K2>;
$(".opened").click();
K = $( ".accordion_title_text" );
nK = 0;
setTimeout(function() {//K3>;
for(var i = 0, TotK = K.length; i < TotK; i++){//K4>;
nK += 1
k = $(K[i]).text();
$(K[i]).parent().parent().prepend('<a id= "'+nK+'"></a>');
setTimeout(function(){ //K5>;
location.href=anchorK;
}, 200); //K5<<;
}//K4<<;
offsetK();
}, 400); //K3<<;
} //K2<<;
//---------------f K6 (6,7)---------
function offsetK() { //K6>;
$(coll_ancoraK).click()
setTimeout(function(){ //K7>;
hK=$("#imStickyBarObjects").height();
scrollK=$(window).scrollTop();
scrollK=scrollK-hK;
$('html,body').scrollTop(scrollK);
}, 500);//K7<<;
} //K6<<;
</script>
.
Autor
Grazie di tutto. SEI UN MAGO
adesso funziona sia sul computer che sul telefonino.
Ho modificato i secondi in 3 e il ritardo l'ho moltiplicato per 500 e no per 1000
ritardoK= 3; // = secondi di ritardo
setTimeout(function() { //K1>;
anchorK = window.location.hash;
coll_ancoraK = anchorK ;
controlloK1()
},ritardoK * 1000);//K1<<;
Non credo che ci saranno problemi. O credi che devo lasciare i valori che hai messo tu?
ps. Aspetto il tuo consiglio per poi chiudere il post.
Grazie ancora
Autor
Scusa, Modificato in 1 secondo
ù
... ho controllato adesso, e dal mio smarphone funziona bene ...OK...
... invece dal mio PC non si attiva l'Ancoraggio in canti.html ......
... forse hai abbassato di troppo il calcolo sul ritardo per latenza della pagina, e forse anche perchè il mio PC obsoleto o la mia linea sono troppo lenti...
... nel caso potresti personalizzare solo la variabile ritardoK senza toccare il moltilicatore *1000
... per esempio 0 per azzerare il tempo; 0.25 per un quarto di secondo; 0.5 per mezzo secondo; eccetera...
... ma secondo me sarebbe meglio non scendere sotto ad 1 secondo...
... se fai la modifica controllerò nuovamente...
... e per come ti avevo accento prima fammi sapere se ti interesserebbero anche i collegamenti nella lista della colonna dei testi/titoli...
.
ciao
Autor
Ho modificato i secondi a 0.5 e il moltiplicatore l'ho lkasciarto a 1000
anche per me adesso va bene
Ti ringrazio tanto.
per la lista titoli si può anche lasciar stare. Inutile mettere tante ancore e collegamenti. Già questi sono molti
... purtroppo è meno di un secondo e sul mio PC non funziona, cosa che funzionva prima, forse perchè è troppo lento...
... ma se hai avuto modo di valutare con altri PC, e se per te va bene, allora lascia pure così...
.
ciao
.
Autor
Grazie ancora. E comunque la pagina sarà utilizzata al 99% sui telefonini
... Grazie anche a te per averr sperimentato ed apprezzato...
Ciao
.