Non funzionano correttamente le ancore 
Autore: Domenico B.
Visite 424,
Followers 2,
Condiviso 0
Non funzionano correttamente le ancore
Postato il

Autore
Ho fatto diverse prove e non vanno sia numeriche che lettere, o provato anche con la beta e nulla da fare, tolto e rimesso tutto da zero ma nulla da fare
Autore
funziona su chrome ma su gli altri broeser no
Buongiorno Domenico, io ho fatto una prova con la 2024.2 e sembra tutto ok anche su Firefox puoi valutare a questo link:
https://www.giancarloweb.it/natural-store.html
cliccando sul pulsante nel fondo Go Back! torna nella pagina Template e si posizione esattamente su NATURAL STORE
Ora non so se è un BUG delle nuove versioni dovrei verificare, se vuoi posso provare, fammi sapere ciao.
.. senza LINK non si può valutare, ...sulle ancore ho fornito diverse decine di informazioni ed istruzioni, che stando sulla logica delle Ancore "normali" ovviamente non sarebbero neanche servite...
... in genere non dovrebbero sussistere problemi, ... comunque, ed a seconda di come usi Ancore ed Ancoraggi, controlla l'URL del sito che hai dichiarato al Passo_5...
.
Autore
vi lascio il link per provare qui" target="_blank" rel="nofollow">https://www.muni.eu/eventi-a-monteroduni.html">qui
Per quanto riguarda la URL è tutto ok
... ho capito, non sono quelle che ho detto prima Ancore "normali", quelle che funziona da sempre e sempre, ...ma si tratti di ancore su terza pagina in pagina con contenuti dinamici non immediatamente rilevabili all'apertura della pagina e quindi spesso non fa in tempo a leggere il punto di ancoraggio sfasando il posizionamento dello scroll della pagina...
... per rimediare a questo c'è una mia invenzione esclusiva (nata v.12) per Ancore ed Ancoraggi da e su terza pagina, cercando lo potresti trovare penso facilmente...
... se vuoi che lo verifichi io entrando nel merito della tua pagina "eventi" avvisami che rivedrò il mio codice e lo adatterò meglio per la tua pagina, e nel caso avvisami e fatti risentire...
... sì, ho visto, l'URL al Passo_5 è corretto ...
.
Autore
Kol buongiorno! Volevo ringraziarti per ciò che fai.
io o trovato un tuo codice che o adattato ed è perfettamente funzionante
<script>
$("document").ready(function() { //K;
ritardoK= 12; // = secondi di ritardo
var anchorK = window.location.hash;
if (anchorK != -1){ k= anchorK;//K;
setTimeout(function() { x5engine.utils.location(k, null, false);},ritardoK * 1000);
} else {$("#loaderK").hide();} });
</script>
Grazie mille Kol!
... grazie per averlo apprezzato, è uno dei miei primi metodi...
... ho provato il tuo ancoraggio, magari ti funziona localmente, ma hai impostato un ritardo sulla latenza troppo basso, per cui non si attiva nel mio primo test, ma funziona meglio dopo il primo caricamento della pagina ancorata...
... dovresti valutare dei secondi di tardo più adeguati, o 3, o 4, o 5 secondi...
... in alternativa e meno problematica, ti faccio provare questa variante che ho realizzato per non dipendere dai valori forfettari del ritardo....
... questo codice tenta di riconoscere automaticamente l'Ancora in Terza Pagina, per cui dovrebbe rispondere con più sicurezza e rapidamente al rilevamento...
... lo applicherai al posto del precedente codice, sempre con un click...
... quando l'avrai fatto verificherò direttamente online rispetto al problema riscontrato precedentemente...
... ecco il nuovo codice in sostituzione, l'ho fatto verificare ad AI(!) che me lo ha confermato con aggiunta di una funzione dinamica che non mi è dispiaciuta; provalo:
<script>
/** -- Ancoraggio da Terza Pagina x WSx5 by KolAsim --**/
$(document).ready(function() { const StickyBarK = "#imStickyBarContainer"; const max_rilevaK = 15; const rip_max_rilevaK = 200; const intercettascrollK = 300; let scorrimentoK = false; let fineScrollKt; $(window).on('scroll', function() { scorrimentoK = true; clearTimeout(fineScrollKt); fineScrollKt = setTimeout(() => { scorrimentoK = false; }, intercettascrollK); }); function scrollToAnchorK(anchor) { const $target = $(anchor); if ($target.length && !scorrimentoK) { const offset = $target.offset().top - ($(StickyBarK).height() || 0); $('html, body').animate({ scrollTop: offset }, 500); return true; } return false; } function retryAnchor(anchor, attempt = 1) { const $target = $(anchor); if ($target.length) { scrollToAnchorK(anchor); observeAnchor(anchor, $target[0]); } else if (attempt < max_rilevaK) { setTimeout(() => retryAnchor(anchor, attempt + 1), rip_max_rilevaK); } } function observeAnchor(anchor, element) { if (!element) return; const observer = new IntersectionObserver((entries, obs) => { entries.forEach(entry => { if (entry.isIntersecting && !scorrimentoK) { scrollToAnchorK(anchor); obs.disconnect(); } }); }, { threshold: 0 }); observer.observe(element); } $(document).on('click', 'a[href^="#"]', function(e) { const anchor = $(this).attr('href'); const link = this; const samePage = (link.pathname === window.location.pathname && link.hostname === window.location.hostname); if (samePage) return; e.preventDefault(); retryAnchor(anchor); }); const hash = window.location.hash; if (hash) { const $target = $(hash); if ($target.length) { scrollToAnchorK(hash); observeAnchor(hash, $target[0]); } else { setTimeout(() => retryAnchor(hash), 50); } } });/**K**/
</script>
.
ciao
--------------
PS: ... nel codice che stai attualmente usando, il primo che hai postato, era accoppiato al preload loaderK, che lì manca...
... se ti interessa, sarebbe elegante applicarlo, ho ritrovato il mio codice figlio del tuo, con preload accoppiato, e senza bisogno di valutare il ritardoK, molto semplice quasi come il primo ma con il più il preload,e nel caso fammi sapere se lo vuoi provare...
.
Autore
Kol, il secondo codice non va, se vuoi posso lascartelo se vuoi controllare anche tu.
Mo aumentato i secondi al primo codice è risponde abbastanza bene
.... ho visto, e adesso con 1 secondo in più funziona meglio sul PC, Tablet e Smatphone, tranne che su un mio vecchio tablet lento a generare pagine complesse, direi che va bene...

... comunque ho voluto lo stesso dedicarci una mezz'oretta, perchè non ho dimestichezza con il programma, e fare così un esperimento direttamente io e provarlo online, invece che basarmi per programmare sulle pagine online degli altri, per cui ho potuto valutare che hai fatto un bel ed impegnativo lavoro...
... in questo esempio messo su su due piedi, solo dimostrativo, nella sezione fucsia è attivo l'ultimo codice che ti avevo postato prima che hai detto che non ti aveva funzionato, e gli altri sono con una delle mie vecchie invenzioni, figlia di quella che stai usando; ...noterai che tutti gli ancoraggi su terza pagina si distanziano dalla StickyBar:
>> https://kolasim.websitex5.me/ancore/ancoraggi.html
.
ciao
.
Autore
Kol! Grazie mille per quello che fai per questa comunità.
O visto e alcuni effetti sono molto belli. Ma tu hai un blog tuo?
... grazie; ... per il blog, purtroppo no! .. quello che avevo su Aruba, ospite in un sito amico è andato estinto con più di 100 invenzioni fatte con SwishMax e WebSiteX5..
.
...
... ti consiglierei di provare il terzo esempio, magari solo per prova; ... il preload comunica elegantemente al visitatore che qualcosa sta per accadere, e non si spazienta per così poco...
.