Ich möchte Abschnitte in einem Div fangen, aber ich möchte dies ohne das Fenster Scrollen tun. Ich möchte in der Lage sein, innerhalb dieses div zu scrollen.Fangen an Abschnitte ohne Fenster Scrollen
Ich glaube nicht, dass ich mich gut genug erkläre. Wenn ich scrolle, scrollt das Fenster, dann wird der Artikel an Ort und Stelle eingerastet, und so weiter. Ich möchte, dass es so ist, dass, wenn ich innerhalb von #content blättern werde, der Artikel in Position gerastet wird.
Irgendwelche Vorschläge?
$(document).ready(function() {
$("article").css("height", $(window).height() + "px");
$("#content").sectionsnap({
delay : 100
, selector : 'article'
, reference : 1
, animationTime : 600
});
});
(function($) {
$.fn.sectionsnap = function(options) {
var $wrapper = this
, direction = 'down'
, currentScrollTop = $("section").scrollTop()
, scrollTimer
, animating = false;
// check the direction
var updateDirection = function() {
if ($("section").scrollTop() >= currentScrollTop)
direction = 'down';
else
direction = 'up';
currentScrollTop = $("section").scrollTop();
}
// return the closest element (depending on direction)
var getClosestElement = function() {
var $list = $wrapper.find(settings.selector)
, wt = $("section").scrollTop()
, wh = $("section").height()
, refY = wh * settings.reference
, wtd = wt + refY - 1
, $target;
if (direction == 'down') {
$list.each(function() {
var st = $(this).position().top;
if ((st > wt) && (st <= wtd)) {
$target = $(this);
return false; // just to break the each loop
}
});
} else {
wtd = wt - refY + 1;
$list.each(function() {
var st = $(this).position().top;
if ((st < wt) && (st >= wtd)) {
$target = $(this);
return false; // just to break the each loop
}
});
}
return $target;
}
// snap
var snap = function() {
var $target = getClosestElement();
if ($target) {
animating = true;
$('html, body').animate({
scrollTop: ($target.offset().top)
}, settings.animationTime, function() {
window.clearTimeout(scrollTimer);
animating = false;
});
}
}
// on window scroll
$("section").scroll(windowScroll);
return this;
};
})(jQuery);
irgendwelche Vorschläge sind sehr geschätzt
Ich bin damit einverstanden, dass Sie diese gut genug – sheriffderek
http nicht zu erklären sind: // kuhl.pl/github/sectionsnap/Wenn das Fenster scrollt, wird sofort das nächste Element angezeigt. Ich möchte es so machen, dass, wenn der Abschnitt (nicht das Fenster) scrollt, das nächste Element in Sicht kommt. Klärt das? – user1377298