Ho un accordion, in cui tutto funziona okay.
Questo il codice JQ:
Quel che mi serve è che, al click di apertura, usando la funzione scrollToAnchor la pagina scrolli portandosi in testa all'elemento cliccato.codice:$('.offers').toggleClass('inactive-header'); var contentwidth = $('.accordion-header').width(); $('.slideoffers').css({'width' : contentwidth }); $('.offers').click(function () { if ($(this).is('.inactive-header')) { $('.active-header').toggleClass('active-header').toggleClass('inactive-header').next().slideToggle().toggleClass('open-content'); $(this).toggleClass('active-header').toggleClass('inactive-header'); $(this).next().slideToggle().toggleClass('open-content'); var id = this.attr('id'); scrollToAnchor('id'); } else { $(this).toggleClass('active-header').toggleClass('inactive-header'); $(this).next().slideToggle().toggleClass('open-content'); scrollToAnchor('topoff'); } }); return false;
Quando clicco per chiudere, invece, mi porti in testa a tutto il blocco.
Quest'ultima cosa funziona, perchè definisco in modo assoluto l'ancora a cui fare riferimento, mentre per la prima parte no.
Ogni elemento con classe offers (quelli che cliccati aprono lo slide) ha un id, e ciascuno contiene un ancora con nome uguale. Ad esempio, l'elemento con id="op1", contiene un ancora <a name="op1"></a>. Però, usando
o anchecodice:var id = this.attr('id'); scrollToAnchor('id');
non succede nulla, segno che non ha individuato l'id - e quindi l'ancora.codice:var id = $(this).attr('id'); scrollToAnchor('id');
Come fare?
![]()

Rispondi quotando