Ich möchte in der Lage sein, beim Scrollen nach unten, direkt zum nächsten Div zu gehen, und beim Scrollen nach oben, um direkt zum vorherigen Div. Hier sind meine Dateien mit einem Beispiel mit zwei divs:Javascript: Scrollen von einem Div zum anderen beim Scrollen?
$(document).ready(function() {
var lastScrollTop = 0;
function findPos(obj) {
var curtop = 0;
if (obj.offsetParent) {
do {
curtop += obj.offsetTop;
} while (obj = obj.offsetParent);
return [curtop];
}
}
$(window).scroll(function(event) {
var st = $(this).scrollTop();
if (st > lastScrollTop) {
$('html, body').animate({
scrollTop: $("#space_od").offset().top
}, 500);
} else {
$('html, body').animate({
scrollTop: $("#black_hole").offset().top
}, 500);
}
lastScrollTop = st;
});
});
body {
padding: 0;
margin: 0;
}
#black_hole {
background-image: url("black_hole.jpg");
background-position: center;
display: block;
height: 100vh;
width: 100%;
}
#space_od {
background-image: url("2001.png");
background-position: center;
display: block;
height: 100vh;
width: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="black_hole">
</div>
<div id="space_od">
</div>
Es scheint gut zu funktionieren, wenn das erste Mal nach unten scrollen, aber nicht beim Scrollen nach oben, so scheint es, ein paar Pixel zu bewegen und dann hör auf. Irgendwelche Ideen?
ich je hatte dies mehrmals zu tun und haben noch nie eine präzise Umsetzung gesehen. Diese Bibliothek hat für mich gut funktioniert: https://github.com/zynga/scroller. Dieser, https://github.com/peachananr/onepage-scroll, ist auch auf GitHub beliebt, aber ich mag die API nicht so sehr. – rojobuffalo
möglich Duplikat von http://StackOverflow.com/Questions/11171828/Control-Page-Scroll-Animation-with-mousewheel –
** Fiddle Beispiel: http://jsfiddle.net/r3x7r/410/** –