Wie kann ich das Bildfenster schrittweise nach unten scrollen, während die Maustaste über ein position: fixed
Element gedrückt wird?Allmählich scrollen auf Mousedown bis mouseup
Antwort
Hier können Sie dies mit jQuery.animate() in Kombination erreichen mit setTimeout() und clearTimeout():
$('.button').on('mousedown', function() {
console.log('Start Animate');
(function smoothSrcroll() {
console.log(Math.max($('html').scrollTop(), $('body').scrollTop()));
$('html, body').stop().animate({
scrollTop: Math.max($('html').scrollTop(), $('body').scrollTop()) + 100
}, 1000, 'linear', function() {
window.timeout = setTimeout(smoothSrcroll(), 0);
});
})();
}).on('mouseup', function() {
console.log('Stop Animate');
$('html, body').stop();
clearTimeout(window.timeout);
});
Ich bin Targeting $('html, body')
, so dass es in Firefox und Chrome funktionieren. Dies wird ein wenig schwierig, weil die animate()
wegen der zwei Selektoren tatsächlich zweimal läuft. Um das zu lösen, habe ich jQuery.stop() verwendet. Da Firefox die $('html').scrollTop()
verwenden kann und Chrome die $('body').scrollTop()
verwendet, berechnete ich die Schrittweite mit Math.max(). Die Funktion wird nach Beendigung automatisch ausgeführt und verwendet clearTimeout()
und jQuery.stop()
, wenn die Maus losgelassen wird.
Funktioniert gut, danke! Gibt es einen Weg, es ein wenig glatter zu machen? –
@ScottHunter Es gibt zusätzliche Skripts, die zur Beschleunigung in der standardmäßigen jQuery-Bibliothek beitragen. Es gibt wirklich nur 3 Einstellungen: linear, swing und default. Sie können Skripts finden, die glattere Übergänge erstellen. – Daerik
- 1. Differenzieren klicken vs mousedown/mouseup
- 2. Bootsfaces handhaben mousedown/mouseup auf Handy
- 3. Zeige MessageBox auf MouseDown frisst MouseUp-Ereignis
- 4. MouseUp/MouseClick nach MouseDown verhindern
- 5. jQuery Sortable mit mouseup, mousedown-
- 6. Nokia Maps (v2.2): mousedown/mouseup Ausgabe
- 7. Klickereignis nach mousedown & mouseup verhindern Ereignis
- 8. detect mouseup außerhalb von mousedown element
- 9. Delphi - Drag and Drop + MouseDown- + MouseUp
- 10. Vaadin: MouseDown/MouseUp und KeyDown/KeyUp gleicht
- 11. Warum (MouseUp mouseDown) nicht auf mobilen Browser arbeiten?
- 12. WPF - Popup-Menü auf MouseDown-, wählen Sie dann mit MouseUp
- 13. Jquery hinzufügen mouseup und mousedown Ereignis auf mehreren Bildern
- 14. Deaktivieren scrollen auf mousedown-mouse (Jquery/javascript)
- 15. JQuery wie man divs wie Scrollen mit mousedown() und mouseup() zeigt
- 16. eine NSSharingServicePicker auf MouseUp
- 17. bootstrap mousedown anstelle von click oder mouseup verwenden
- 18. HTML5 Canvas: Wie man mousedown mouseup mouseclick behandelt
- 19. Haben sowohl mousedown/mouseup als auch dblclick in jQuery
- 20. Hide div allmählich auf Scrolldown mit AngularJS
- 21. Run mousedown-Ereignis alle 0,2 s, bis Maus hoch
- 22. Silverlight 3 - ListBox: Wie glatt Blättern Sie zu erreichen und MouseDown-/MouseUp Events
- 23. Wie bekomme ich den ausgewählten BezierPath auf MouseDown oder MouseDragged oder MouseUp?
- 24. nicht in der Lage klicken Feuer, mousedown-, mouseup Ereignisse zur gleichen Zeit auf svg in firefox
- 25. Wie scrollen Sie div kontinuierlich bei mousedown Ereignis?
- 26. versteckte Fußzeile erscheint allmählich auf Scroll
- 27. Wie mouseup Ereignis jquery hinzufügen
- 28. MouseUp-Ereignis auf Document.documentElement löst nicht mit Alert
- 29. MouseDown-Ereignisse werden erst ausgegeben, wenn MouseUp eine Drag-Quelle enthält
- 30. google.maps.event.addDomListener mousedown auf Firefox
Scrollt der Mauszeiger beim Scrollen nicht von dem Element, das er gedrückt hält? Wenn Sie "auf einen Klick" statt auf "halten" verstanden haben, dann sollten Sie folgendes beachten: [Javascript smooth scroll OHNE Verwendung von jQuery] (https://stackoverflow.com/questions/10063380/javascript-smooth-scroll-without-the-use -of-jquery) oder [dies] (https://www.sitepoint.com/smooth-scrolling-vanilla-javascript/) –
Danke, aber es wäre ein festes Element, das sie halten –