Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    71

    Problema ScrollTop jquery

    Ciao a tutti,
    sto creando questo sistema http://www.netcoming.it/contact_configuratore/ che ha dei div nascosti che al click della sezione corrispondente questi si aprono.
    Una volta aperti però deve esserci uno scroll alla nuova sezione aperta, ma qui ho qualche problema.
    Non riesco a capire perchè se clicco sul primo radio button scrolla tranquillamente al div aperto mentre se dopo clicco sul secondo radio button questo scrolla più in basso del div che si apre e sul terzo radio ancora più in basso.

    Questo il codice jquery che sto utilizzando:
    codice:
    var $expand = jQuery.noConflict();
        $expand('.expand_superficie').on('click',function() {
           $expand("[class^=div_superficie]").not($expand("."+this.id)).slideUp();
           $expand("."+this.id).slideToggle();
           
           $expand("[class^=freccia_config_superficie]").not($expand("freccia_config_"+this.id)).slideUp();
           $expand(".freccia_config_"+this.id).toggle();
           
           var destination = $expand("."+this.id).position().top;
           $expand('html, body').animate({
             scrollTop: destination
            }, 600);
        });
    potreste darmi una mano? Non so proprio come risolvere.
    Grazie in anticipo.

  2. #2
    Quote Originariamente inviata da rash Visualizza il messaggio
    Ciao a tutti,
    sto creando questo sistema http://www.netcoming.it/contact_configuratore/ che ha dei div nascosti che al click della sezione corrispondente questi si aprono.
    Una volta aperti però deve esserci uno scroll alla nuova sezione aperta, ma qui ho qualche problema.
    Non riesco a capire perchè se clicco sul primo radio button scrolla tranquillamente al div aperto mentre se dopo clicco sul secondo radio button questo scrolla più in basso del div che si apre e sul terzo radio ancora più in basso.

    Questo il codice jquery che sto utilizzando:
    codice:
    var $expand = jQuery.noConflict();
        $expand('.expand_superficie').on('click',function() {
           $expand("[class^=div_superficie]").not($expand("."+this.id)).slideUp();
           $expand("."+this.id).slideToggle();
           
           $expand("[class^=freccia_config_superficie]").not($expand("freccia_config_"+this.id)).slideUp();
           $expand(".freccia_config_"+this.id).toggle();
           
           var destination = $expand("."+this.id).position().top;
           $expand('html, body').animate({
             scrollTop: destination
            }, 600);
        });
    potreste darmi una mano? Non so proprio come risolvere.
    Grazie in anticipo.
    "position().top" restituisce la posizione dell'elemento in relazione all'elemento padre.

    Nel tuo caso, bisogna usare "offset().top" che, invece, restituisce il top in relazione all'intero documento.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    71
    No c'è lo stesso problema, già provato.
    Ho risolto dando come destinazione un div madre.
    Il problema sta praticamente nello scroll mentre il nuovo di va in show() quindi prende una posizione più bassa.
    Grazie lo stesso.
    Come faccio a chiudere il topic o cancellarlo?
    Ultima modifica di rash; 29-06-2016 a 15:45

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.