Los últimos tutoriales de desarrollo web
 

Bootstrap JS Scrollspy


JS Scrollspy (scrollspy.js)

El plug-in Scrollspy se utiliza para actualizar automáticamente los enlaces en una lista de navegación basada en la posición de desplazamiento.

Para ver un tutorial sobre Scrollspy, lea nuestra Scrollspy Tutorial Bootstrap .

Consejo: El plug-in Scrollspy se utiliza a menudo junto con el afijo plugin.


Via data-* Atributos

Añadir data-spy="scroll" para el elemento que se debe utilizar como el área de desplazamiento (a menudo este es el <body> elemento).

A continuación, añadir la data-target atributo con un valor de la identificación o el nombre de clase de la barra de navegación ( .navbar ). Esto es para asegurarse de que la navbar está conectado con el área de desplazamiento.

Tenga en cuenta que los elementos desplazables deben coincidir con el ID de los enlaces dentro de los elementos de lista de la barra de navegación ( <div id="section1"> coincide <a href="#section1"> ).

El sistema opcional data-offset atributo especifica el número de píxeles para desplazar de arriba en el cálculo de la posición de desplazamiento. Esto es útil cuando se siente que los enlaces dentro de la barra de navegación cambia el estado activo demasiado pronto o demasiado pronto cuando se dirija a los elementos desplazables. Por defecto es de 10 píxeles.

Requiere posicionamiento relativo: El elemento con data-spy="scroll" requiere que el CSS position propiedad, con un valor de "relative" para que funcione correctamente.

Ejemplo

<!-- The scrollable area -->
<body data-spy="scroll" data-target=".navbar" data-offset="50">

<!-- The navbar - The <a> elements are used to jump to a section in the scrollable area -->
<nav class="navbar navbar-inverse navbar-fixed-top">
...
  <ul class="nav navbar-nav">
    <li><a href="#section1">Section 1</a></li>
    ...
</nav>

<!-- Section 1 -->
<div id="section1">
  <h1>Section 1</h1>
  <p>Try to scroll this page and look at the navigation bar while scrolling!</p>
</div>
...

</body>
Inténtalo tú mismo "

a través de JavaScript

Habilitar manualmente con:

Ejemplo

$('body').scrollspy({target: ".navbar"})
Inténtalo tú mismo "

Opciones Scrollspy

Las opciones pueden ser transmitidos a través de los atributos de datos o JavaScript. Para los atributos, al añadir el nombre de opción de de datos, como en la técnica de offset = "".

Nombre Tipo Defecto Descripción Intentalo
offsetnumber10 Especifica el número de píxeles para desplazar de arriba en el cálculo de la posición de desplazamiento Intentalo

Métodos Scrollspy

La siguiente tabla muestra todos los métodos disponibles scrollspy.

Método Descripción Intentalo
.scrollspy("refresh") Al añadir y eliminar elementos de la scrollspy, este método se puede utilizar para actualizar el documento Intentalo

Eventos Scrollspy

En la siguiente tabla se enumeran los eventos scrollspy todos disponibles.

Evento Descripción Intentalo
activate.bs.scrollspy Se produce cuando un nuevo elemento se activa por el scrollspy Intentalo

Ejemplos

Ejemplos

Scrollspy con el desfile de animación

Cómo añadir un desplazamiento suave página a un ancla en la misma página:

desplazamiento suave

// Add scrollspy to <body>
$('body').scrollspy({target: ".navbar", offset: 50});

// Add smooth scrolling to all links inside a navbar
$("#myNavbar a").on('click', function(event){

  // Prevent default anchor click behavior
  event.preventDefault();

  // Store hash (#)
  var hash = this.hash;

  // Using jQuery's animate() method to add smooth page scroll
  // The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area (the speed of the animation)
  $('html, body').animate({
    scrollTop: $(hash).offset().top
  }, 800, function(){

    // Add hash (#) to URL when done scrolling (default click behavior)
    window.location.hash = hash;
  });
});
Inténtalo tú mismo "

Scrollspy y Affix

Utilizando el afijo plug-in junto con el plugin Scrollspy:

Menú horizontal (barra de navegación)

<body data-spy="scroll" data-target=".navbar" data-offset="50">

<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197">
...
</nav>

</body>
Inténtalo tú mismo "

Menú vertical (Sidenav)

<body data-spy="scroll" data-target="#myScrollspy" data-offset="15">

<nav class="col-sm-3" id="myScrollspy">
  <ul class="nav nav-pills nav-stacked" data-spy="affix" data-offset-top="205">
  ...
</nav>

</body>
Inténtalo tú mismo "