Maison  >  Article  >  interface Web  >  jQuery a corrigé les idées d'implémentation de la barre latérale flottante et code_jquery

jQuery a corrigé les idées d'implémentation de la barre latérale flottante et code_jquery

WBOY
WBOYoriginal
2016-05-16 16:34:561256parcourir

Cette fonction est désormais très couramment utilisée. Si la page est relativement haute, lorsque la barre de défilement est glissée vers le bas de la page, une boîte DIV apparaîtra dans la barre latérale qui suit le navigateur. L'idée actuelle est la suivante. : obtenez d'abord la distance requise entre le DIV suivant et le haut de la page. Lorsque la distance de défilement du navigateur est supérieure à la distance entre le DIV lui-même et le haut, ajoutez simplement l'attribut CSS fixe.

Le code est le suivant

Code HTML :

<div id="header">header</div>
<div id="sidebarWrap">
<div id="sidebar">Sidebar</div>
</div>
<div id="main">Main</div>
<div id="footer">footer</div>

Code CSS :

body {
margin: 10px auto;
font-family: sans-serif;
width: 500px;
}
div {
border-radius: 5px;
box-shadow: 1px 2px 5px rgba(0,0,0,0.3);
border: 1px solid #ccc;
padding: 5px;
}
#sidebarWrap {
height: 400px;
width: 210px;
float: right;
position: relative;
box-shadow: none;
border: none;
margin: 0;
padding: 0;
}
#main {
width: 270px;
height: 4000px;
}
#footer {
clear: both;
margin: 10px 0;
}
#sidebar {
width: 200px;
height: 300px;
position: absolute;
}
#header {
height: 200px;
margin-bottom: 10px;
}
#sidebar.fixed {
position: fixed;
top: 0;
}
#footer { height: 600px; }
#footer { height: 600px; }

Code JavaScript :

$(function() {
var top = $('#sidebar').offset().top - parseFloat($('#sidebar').css('marginTop').replace(/auto/, 0));
var footTop = $('#footer').offset().top - parseFloat($('#footer').css('marginTop').replace(/auto/, 0));

var maxY = footTop - $('#sidebar').outerHeight();

$(window).scroll(function(evt) {
var y = $(this).scrollTop();
if (y > top) {
if (y < maxY) {
$('#sidebar').addClass('fixed').removeAttr('style');
} else {
$('#sidebar').removeClass('fixed').css({
position: 'absolute',
top: (maxY - top) + 'px'
});
}
} else {
$('#sidebar').removeClass('fixed');
}
});
});
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn