JavaScript JQuery BlockUI -- Prevent Scroll To Top

Crashdowns

Ensign
Registriert
Juni 2010
Beiträge
138
Hi Leute,
ich benutze auf einer Website das JQuery Plugin "BlockUI" (Link zur Homepage) um popups + overlay zu erzeugen. Eine meiner pages wird durch endless pagination (wie Tumblr/Facebook/etc) automatisch weiter und weiter verlängert wenn man runter scrollt. Blöderweise wird man aber jedes mal an den seitenanfang zurück katapultiert wenn man das BlockUI plugin aufruft und ein popup + overlay erstellt.
Kann man das automatische scroll to top irgendwie unterbinden?

Mfg Crash

EDIT: Ich habe bereits das popup als "position: absolute" dort fixiert wo es aufgerufen wird. Allerdings werde ich immer noch nach oben gescrollt (nur halt ohne das popup).
 
Zuletzt bearbeitet:
Die Lösung habe ich leider nicht parat aber eventuell einen ansatz.

Ich habe selber schon auf Webseiten $(...).scrollTo verwendet.
Kannst du den JQuery SourceCode vom "BlockUI" debuggen?
Wenn ja, würde ich mal gucken, was dort passiert und ob ein scrollTo(x,y) oder so aufgerufen wird.
Eventuell hat das BlockUI auch eine API Beschriebung, mit der mal das scrollen deaktivieren kann.

Ich kenne das BlockUI noch nicht, daher erstmal nur Brainstorming
 
Ich hab schon den gesamten BlockUI code zerpflückt und wie du vorgeschlagen hast erst nach irgendwelchen ScrollTo anweisungen gesucht, dann versucht diverse positionierungen zu manipulieren, etc. Ich habe leider keinen Grund gefunden warum immer zum Anfang der Seite gesprungen wird.
 
Hey,

eventuell müsstest du mal ein wenig Quellcode posten.

Ich habe selber eben mal eine Seite erstellt, die kopierten Content hat und nach ganz unten habe ich einen Button gesetzt.
Die Seite scrollt nicht nach oben.

Habe mal die index.html und die block.js in den Anhang gepackt, vielleicht kann ich ja helfen


Ist in 2 Minuten zusammenkopiert...bitte nicht steinigen ;-)
 

Anhänge

Verwendest du zufällig statt einem <button>-Tag ein <a>-Tag mit # im href-Attribut?
 
@ QXARE
Jap. Stellt das ein Problem da?

@Motero0815
Werde ich ausprobieren sobald ich mir angucken sobald ich zu hause bin.
 
Wenn das so ähnlich aussieht wie
Code:
$("a").click(function() {
    // stuff 
});
dann müsstest du es wie folgt abändern:
Code:
$("a").click(function(e) {
    e.preventDefault();
    // stuff 
});

Die Sache ist die, dass beim Klick auf den <a>-Tag zwar dein Block-Zeug ausgeführt wird, aber wahrscheinlich auch noch das Default-Verhalten, sprich der Linkaufruf selbst, vom Browser durchgeführt wird und aufgrund des # nach oben springt.

Mit jQuery braucht man nur das Event als Parameter mitübergeben, was in dem gezeigten Beispiel e darstellt und anschließend muss dieses Default-Verhalten noch verhindert werden, was ebenso bereits einfach mit jQuery durch preventDefault() möglich ist.
 
QXARE ist der Lösungsbringer. Ich habe zwar kein Konstrukt wie du oben gezeigt hast verwendet, aber nichts destotrotz ist durch benutzen des <a>-Tags immer der Sprung zum Seitenanfang ausgelöst worden. Ich hab jetzt alle <a>-Tags die mit BlockUI in zusammenhang stehen entsorgt und alles funktioniert wie gewünscht.
Danke!
 
Zurück
Oben