jQuery – ScrollTop ohne Animation

Lesezeit: 2 Minuten

Benutzer-Avatar
Benutzer970727

Wie kann ich das Scrolltop ohne Animation verwenden?

Dieser Code funktioniert:

var offTop = $('#box').offset().top;
offTop  = offTop-43;
$('#mainCt').animate({scrollTop: '+=' + offTop + 'px'}, 400);

Und hier sind meine (nicht funktionierenden Lösungen):

$("#mainCt").scrollTop('+=' + offTop + 'px');                 // doesn't work
$("#mainCt").scrollTop('+='+offTop);                          // doesn't work
hhh = setTimeout(' $("#mainCt").scrollTop('+offTop+');',800); // doesn't work

DEMO
http://jsfiddle.net/DNNFF/9/

Versuche dies:

var offTop = $('#box').offset().top - 43;
$('#mainCt').scrollTop(offTop);

Das scrollTop Die Eigenschaft akzeptiert nur eine Ganzzahl, es sind keine Suffixe oder Einheiten erforderlich.

  • Funktioniert hier gut: jsfiddle.net/wNehJ Hast du irgendwelche Fehler in deiner Konsole?

    – Rory McCrossan

    13. April 2012 um 15:37 Uhr

  • auch wenn du etwas nach unten scrollst? Bearbeiten: Spielen Sie damit, es funktioniert nicht (ich überprüfe den Code in Firefox und in Chrome)

    – Benutzer970727

    13. April 2012 um 15:51 Uhr


  • Ich denke, das liegt daran, dass es keine gibt #box Element in Ihrem Beispiel

    – Rory McCrossan

    13. April 2012 um 15:57 Uhr

  • -> $(this).after(‘

    content

    ‘);

    – Benutzer970727

    13. April 2012 um 16:00 Uhr

  • Uh, Entschuldigung. Ich brauche offensichtlich eine bessere Brille.

    – Rory McCrossan

    13. April 2012 um 16:00 Uhr

Benutzer-Avatar
chepe263

vielleicht, wenn Sie keine Animation oder irgendetwas Besonderes wollen, verwenden Sie einfach einen Anker

<a name="top"></a>

Platzieren Sie es dort, wo Sie scrollen müssen

und in Ihrer Funktion, wo Sie aufrufen, verwenden

document.location.href="#top";

Sie könnten auch eine Funktion erstellen, um den Anker vor dem Element anzuhängen, tun Sie dies document.location Ding und entfernen Sie später diesen Anker.

http://jsfiddle.net/fSrxr/1/

  • Das funktioniert, aber wie kann ich jQuery ScrollTop ohne Animation verwenden?

    – Benutzer970727

    18. April 2012 um 6:56 Uhr

  • Während diese Antwort “funktioniert”, bringt sie den Browserverlauf durcheinander. $(element).scrollTop(offset) ist besser für die Neupositionierung ohne Animation und ohne den Browserverlauf zu verändern. Insbesondere $(window).scrollTop(offset) zum Neupositionieren eines Accordion-Abschnitts der jQuery-Benutzeroberfläche, nachdem das Accordion geladen wurde.

    – Ruben

    12. April 2016 um 22:59 Uhr

Benutzer-Avatar
Jeroen Flammann

jQuery überspringen. Verwenden Sie einfach JavaScript:

window.scroll(0, 0);

http://api.jquery.com/scrollTop/

$(window).scrollTop(offTop)

Benutzer-Avatar
Mrigesh Raj Shrestha

Warum nicht mit kürzerer Dauer verwenden. Ich habe daran herumgefummelt und es hatte keine Animation. Da keine Zeit bleibt, die Animation zu sehen, wird es überhaupt keine Animation geben.

var offTop = $('#box').offset().top;
offTop  = offTop-43;
$('#mainCt').animate({scrollTop: '+=' + offTop + 'px'}, 50); //50 added here as duartion

  • Beantwortet die Frage nicht.

    – igorpawlow

    17. November 2015 um 18:13 Uhr

Benutzer-Avatar
Mr_DeLeTeD

Kannst du nicht mit der Dauer spielen?

var offTop = $('#box').offset().top;
offTop  = offTop-43;
$('#mainCt').delay('800').animate({scrollTop: '+=' + offTop + 'px'}, 1);

  • Beantwortet die Frage nicht.

    – igorpawlow

    17. November 2015 um 18:13 Uhr

Benutzer-Avatar
O Thạnh Ldt

Demo mit Position auf Aktualisierungsseite beibehalten mit jQuery:

//------KEEP SCROLL POSITION
        $(window).scroll(function () {
            sessionStorage.scrollTop = $(this).scrollTop();
        });
        $(document).ready(function () {
            if (sessionStorage.scrollTop != "undefined") {
                setTimeout(() => window.scrollTo({
                    top: sessionStorage.scrollTop,
                    left: 0,
                    behavior: 'auto'
                }), 5);
            }
        });

1168710cookie-checkjQuery – ScrollTop ohne Animation

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy