Salve a tutti!
Sto facendo un sito per un corso di web (studio graphic design),
il sito funziona perfettamente, eccetto che per una cosa:
sul sito ci sono diverse polaroid, una sotto l'altra, quando clicco sul testo sulla polaroid mi appaiono sotto i contenuti, spostando ovviamente verso il basso quelli restanti, e così via.
Il problema è che cambiando i contenuti della pagina, questa si ingrandisce e mi ritrovo che il browser avrà scrollato su un posto a caso, quando voglio invece che, una volta che clicco sull'elemento e mi mostra sotto il contenuto, la pagina scrolli verso il contenuto.
Sono riuscito a fare tutto solo con classi e istanze di queste, codici jquery compresi, rendendo il codice il più semplice e breve possibile, non vorrei dover sostituire tutto con degli ID, e sicuramente non è questo il caso.
La parte di codice interessata è questa
<script type="text/javascript">
var posizionescroll;
$('.polaroid_scritta').click(function() {
$('.riga_polaroid:not(:hover) .polaroid_scritta').removeClass('attivo');
$('.riga_polaroid:not(:hover) .contenuto').hide('fast');
$('.riga_polaroid:hover .polaroid_scritta').addClass('attivo');
$('.riga_polaroid:hover .contenuto').show('slow');
if ($('.riga_polaroid .polaroid_scritta').hasClass('attivo')) {
posizionescroll=$('.riga_polaroid .polaroid_scritta').scrollTop();
}
$('html, body').animate({
scrollTop: posizionescroll+600
}, 1000);
</script>
In pratica mi serve un modo per identificare una particolare istanza con la classe "attivo", prenderne l'altezza nella pagina dopo che è avvenuto lo "show" e spostare lì lo scroll.
Ho provato anche con il codice
$('html, body').animate({
scrollTop: $('.riga_polaroid .polaroid_scritta').offset().top + 600
}, 1000);
Ma il problema è lo stesso, non funziona, si va a posizionare sempre solo dopo la prima istanza di classe (cioè la prima polaroid), ma se apro la terza o la quarta, per esempio, mi torna sempre alla prima.
Grazie per chiunque mi risponda!!!!