Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [JQUERY] Funzione ancoraggio interno morbido

    Ciao a tutti,

    premetto non sono molto pratico con Jquery.

    Ho una navigation bar con ancoraggio interno alla pagina (clicco su "Chi siamo" e vado alla sezione chi siamo della pagina stessa).

    Vorrei ottenere un passaggio non scattoso, ma fluido, verso la sezione.

    Ho trovato questo codice...

    codice:
    $('a[href*=#]').click(function() 
    {   			
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')  && location.hostname == this.hostname) 
    {   		  
    var $target = $(this.hash);   		  
    $target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');   		 
    if ($target.length) 
    {   		  
    var targetOffset = $target.offset().top;   		  
    $('html,body').animate({scrollTop: targetOffset}, 1000);   		  
    return false;
    }   		 
    }   		 
    });
    ... l'ho inserito nell'head, ma non funziona, il passaggio continua a scattare.
    C'è qualcos'altro da fare? Ho creato gli ancoraggi HTML così:

    codice:
    [*]CHI SIAMO
    ...
    <a name="chi-siamo"></a>Bla bla bla...

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Al volo prova a sostituire - con _ (chi-siamo) non vorrei che desse fastidio

    P.S. la libreria jquery l'hai inclusa vero? Che versione?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Ciao Andrea,

    grazie per la risposta al volo. Ho risolto e posto per chi ne avesse bisogno.

    Nello script che ho trovato (e che ho inserito direttamente nella pagina) non era stato inserito la riga "Document ready". Quindi il codice javascript incluso in HTML è il seguente:

    codice:
    <script type="text/javascript">
    	$(document).ready(function(){	
    		$('a[href*=#]').click(function() {  
    			if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')  
    		  && location.hostname == this.hostname) {  
    		  var $target = $(this.hash);  
    		  $target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');  
    		  if ($target.length) {  
    		  var targetOffset = $target.offset().top;  
    		  $('html,body').animate({scrollTop: targetOffset}, 1000);  
    		  return false;}  
    		  }  
    		})
    	});
    </script>
    Ciao!

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.