Ich habe eine Liste von Links in einem div mit Überlauf. Was ich möchte, ist, dass der Benutzer in diesem Menü von Links mit einer Hoch-und Runter-Taste navigieren kann. Ich möchte, dass das div bei jedem Klick des Benutzers auf die entsprechende Schaltfläche um die Höhe von 1 Link-Element nach oben oder unten scrollt. Ich habe etwas Code ausprobiert, aber ich kann nicht herausfinden, wie man den richtigen Betrag in beide Richtungen scrollt. Kann mir jemand helfen?Scrollen nach oben und unten um eine bestimmte Anzahl von Pixeln mit jQuery scrollTop
Alle Links haben die gleiche Klasse.
Edit:
ich bereits geschafft haben, um nach oben und nach unten. Jetzt muss ich nur in kleinen Schritten der Höhe von 1 Link scrollen.
$(function() {
var ele = $('#scroller');
var speed = 10, scroll = 5, scrolling;
$('.scroller-btn-up').click(function() {
// Scroll the element up
scrolling = window.setInterval(function() {
ele.scrollTop(ele.scrollTop() - scroll);
}, speed);
});
$('.scroller-btn-down').click(function() {
// Scroll the element down
scrolling = window.setInterval(function() {
ele.scrollTop(ele.scrollTop() + scroll);
}, speed);
});
$('.scroller-btn-up, .scroller-btn-down').bind({
click: function(e) {
// Prevent the default click action
e.preventDefault();
},
mouseleave: function() {
if (scrolling) {
window.clearInterval(scrolling);
scrolling = false;
}
}
});
});
Sie finden es vielleicht zuverlässiger die Höhe der Verbindung zu berechnen, anstatt hart es Codierung. Wenn jemand nur Text zoomt in Firefox zum Beispiel wird die Schriftgröße in Pixel erhöht. Etwas wie das. var scroll = $ ('# scroller a'). height(); –
Danke für die Antwort und danke für den nützlichen Kommentar! Das Einzige, was ich jetzt tun muss, ist die Scroll-Oberseite zu animieren. Wie kann ich das in diesem Code tun? –
Verwenden Sie einfach 'ele.animate ({scrollTop: (ele.scrollTop() - scroll) + 'px'});' –