2011-03-02 12 views
13

Tengo una página de inicio con enlaces. ¿Cómo puedo dirigir al usuario a una sección de una página diferente?Cómo navegar a una sección de una página

Página principal:

<a href="/sample">Sushi</a> 
<a href="/sample">BBQ</a> 

Página de ejemplo:

<div id='sushi'></div> 
<div id='bbq'></div> 

Al hacer clic en "sushi" o "barbacoa" en la página principal debe navegar por el usuario para el div con id sushi o bbq (respectivamente) de la página sample.

¿Es posible sin JQuery? No me importa usar JQuery, pero una solución más simple usando html también funcionaría.

Respuesta

43

uso de HTML anchors:

Página principal:

<a href="sample.html#sushi">Sushi</a> 
<a href="sample.html#bbq">BBQ</a> 

Página de ejemplo:

<div id='sushi'><a name='sushi'></a></div> 
<div id='bbq'><a name='bbq'></a></div> 
+1

Por favor, enlace a la red de desarrolladores de Mozilla próxima vez. http://w3fools.com – Cilan

+8

@TheWobbuffet: oooooomg vergüenza del pasado lejano (tal vez no se dio cuenta de que esta publicación tiene más de tres años y medio) –

7

envolver su div con

<a name="sushi"> 
    <div id="sushi"> 
    </div> 
</a> 

y enlazar con él por

<a href="#sushi">Sushi</a> 
4

Use anclas.

Página principal:

<a href="/sample#sushi">Sushi</a> 
<a href="/sample#bBQ">BBQ</a> 

Página de ejemplo:

<div id='sushi'><a name="sushi"></a></div> 
<div id='bbq'><a name="bbq"></a></div> 
+0

funciona incluso sin poner nombre para el enlace – Tebe

1

Es posible con HTML mediante el uso de anclas. Si desea mover el usuario a la sección específica, lea acerca de la etiqueta HTML 'a'.

W3Chools: 1 | 2

2

página principal

<a href="/sample.htm#page1">page1</a> 
<a href="/sample.htm#page2">page2</a> 

páginas de muestra

<div id='page1'><a name="page1"></a></div> 
<div id='page2'><a name="page2"></a></div> 
2

Utilice una llamada a través de la sección, funciona

<div id="content"> 
    <section id="home"> 
       ... 
    </section> 

llamada lo anterior, el thru

<a href="#home">page1</a> 

Desplazamiento necesita jquery pegar esto ... arriba para terminar la etiqueta de cierre del cuerpo ..

<script> 
    $(function() { 
     $('a[href*=#]:not([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) { 
        $('html,body').animate({ 
         scrollTop: target.offset().top 
        }, 1000); 
        return false; 
       } 
      } 
     }); 
    }); 
</script> 
0

Mis Soluciones:

$('body').scrollspy({target: '.target', offset: fix_header_height})

$('.target').click(function() { $('body').animate( { scrollTop: $($(this).attr('href')).offset().top - fix_header_height }, 500) return })

Cuestiones relacionadas