Prüfen, ob ein Interval schon gestartet ist
PoWl_238
- javascript
0 Der Martin0 PoWl_2380 Der Martin0 Struppi0 JürgenB
0 Struppi
Hi,
ich löse mit dem onscroll Event ein Interval aus, das mein floatingMenü Schritt für Schritt zur neuen Scroll-Position nachrückt. Sobald es die Position erreicht hat, wird das Interval per clearInterval zurückgesetzt.
Allerdings werden somit immer ganz ganz viele Intervalle gestartet, denn das onscroll Event wird ja beim Scrollen sehr oft ausgelöst. Ich kann zwar zuvor mit clearInterval das Interval zurücksetzen und dann neu setzen, allerdings fängt dann der Zähler mit der Verzögerung wieder erneut an zu zählen, das gibt dann hässliche Aussetzer.
Kann ich irgendwie prüfen, ob ein bestimmtes Interval schon am laufen ist? Ansonsten würde ich das mit einer zusätzlichen Variable machen, die beim ersten Start gesetzt und bei Erreichen der Endposition geleert wird.
mfg PoWl
Hallo,
ich löse mit dem onscroll Event ein Interval aus, das mein floatingMenü Schritt für Schritt zur neuen Scroll-Position nachrückt.
warum das? Was hast du gegen position:fixed?
Allerdings werden somit immer ganz ganz viele Intervalle gestartet, denn das onscroll Event wird ja beim Scrollen sehr oft ausgelöst.
Kann ich irgendwie prüfen, ob ein bestimmtes Interval schon am laufen ist? Ansonsten würde ich das mit einer zusätzlichen Variable machen, die beim ersten Start gesetzt und bei Erreichen der Endposition geleert wird.
Du könntest auch von setInterval() auf setTimeout() umsteigen. Das läuft grundsätzlich nur einmal, wenn man es nicht nicht neu anstößt.
Abgesehen davon: Bist du wirklich sicher, dass so ein allmähliches Nachrücken sein muss? Ich finde, das stört.
So long,
Martin
Ich finde so eine fließende Menü Animation ganz nett. Das Menü beschleunigt und bremst ab, es ist nicht einfach nur ein hartes stockendes Nachrücken. Das würde mich auch nerven.
Einfach die Variable, in der das Interval gespeichert ist, auslesen, funktioniert nicht. Da erhalte ich eine Zahl, die mir angibt, wie oft da schon ein Interval gestartet wurde. Die wird folglich einfach immer größer. Manchmal, wenn ich den Browser ne Weile allein lasse und dann wieder öffne, nimmt diese sogar irgendwelche utopischen Werte wie 2342234 oder 95605 an..
Hi,
Ich finde so eine fließende Menü Animation ganz nett. Das Menü beschleunigt und bremst ab, es ist nicht einfach nur ein hartes stockendes Nachrücken. Das würde mich auch nerven.
dann hast du mich falsch verstanden: Gerade dieses Nachgleiten finde ich störend. Entweder das Element scrollt normal mit dem Inhalt mit wie üblich, oder es bleibt fest und starr an seiner Position (daher hatte ich position:fixed als Alternative vorgeschlagen). Ohne Gleiten, ohne Ruckeln.
Auch das "Soft-Scrolling" (im deutschen Windows: "Sanfter Bildlauf", teils auch "optimierter Bildlauf") finde ich ausgesprochen lästig.
Einfach die Variable, in der das Interval gespeichert ist, auslesen, funktioniert nicht. Da erhalte ich eine Zahl, ...
... die keine numerische Bedeutung hat, sondern nur zum Wiedererkennen des internen Timer-Objekts dient, falls man clearTimeout() oder clearInterval() verwenden möchte (oder muss).
So long,
Martin
[latex]Mae govannen![/latex]
dann hast du mich falsch verstanden: Gerade dieses Nachgleiten finde ich störend. Entweder das Element scrollt normal mit dem Inhalt mit wie üblich, oder es bleibt fest und starr an seiner Position (daher hatte ich position:fixed als Alternative vorgeschlagen). Ohne Gleiten, ohne Ruckeln.
Auch das "Soft-Scrolling" (im deutschen Windows: "Sanfter Bildlauf", teils auch "optimierter Bildlauf") finde ich ausgesprochen lästig.
Absolute Zustimmung. Sowas wird hier sofort deaktiviert, wie auch das weiche Scrollen in meinem Opera (aber ich bin da auch nicht die Norm; ich schalte eh alles ab; erste!! Einstellung bei einem frisch installierten Windows ist immer die Umstellung auf klassische Ansicht, klassisches Startmenü und Abschaltung sämtlicher Effekte)
Um auf „nachziehende“ Navigation zurückzukommen: Dieser Effekt ist maximal in den ersten 2-3 Minuten nett, ich denke, spätestens dann würde ich entweder sie Seite verlassen oder JS deaktivieren, falls der Seiteninhalt wichtig genug ist.
Cü,
Kai
Hallo,
Auch das "Soft-Scrolling" (im deutschen Windows: "Sanfter Bildlauf", teils auch "optimierter Bildlauf") finde ich ausgesprochen lästig.
Absolute Zustimmung. Sowas wird hier sofort deaktiviert, wie auch das weiche Scrollen in meinem Opera (aber ich bin da auch nicht die Norm; ich schalte eh alles ab; erste!! Einstellung bei einem frisch installierten Windows ist immer die Umstellung auf klassische Ansicht, klassisches Startmenü und Abschaltung sämtlicher Effekte)
ACK! Und dann die Detailansicht im Explorer als Standard eingestellt, die Anzeige von versteckten und Systemdateien aktiviert. Dann noch unnötige Dienste wie DTC, DNS-Cache, Indexer, BITS, Remote-Desktop, Scheduler deaktivieren, und dann geht's schon allmählich.
Um auf „nachziehende“ Navigation zurückzukommen: Dieser Effekt ist maximal in den ersten 2-3 Minuten nett
Ja, aber auch nur dann, wenn man ihn zum ersten Mal sieht und sich eine Weile an der Spielerei erfreuen mag. Wenn mir sowas auf der dritten, vierten Seite unabhängig voneinander wieder begegnet, ist es auch keine 2..3 Minuten mehr "nett".
Ciao,
Martin
[latex]Mae govannen![/latex]
ACK! Und dann die Detailansicht im Explorer als Standard eingestellt, die Anzeige von versteckten und Systemdateien aktiviert. Dann noch unnötige Dienste wie DTC, DNS-Cache, Indexer, BITS, Remote-Desktop, Scheduler deaktivieren, und dann geht's schon allmählich.
Der erste Schritt danach ist TweakUI aus den Microsoft-Powertoys zu installieren (und dort noch mehr Effekte und Automationen abzuschalten, die Menüverzögerung und „balloon-tips“ zu deaktivieren und vieles mehr) :)
Um auf „nachziehende“ Navigation zurückzukommen: Dieser Effekt ist maximal in den ersten 2-3 Minuten nett
Ja, aber auch nur dann, wenn man ihn zum ersten Mal sieht und sich eine Weile an der Spielerei erfreuen mag. Wenn mir sowas auf der dritten, vierten Seite unabhängig voneinander wieder begegnet, ist es auch keine 2..3 Minuten mehr "nett".
Ack. Ich habe selbst mal auf meiner Site herumgespielt und "nur" das Öffnen/Schließen eines Sub-Menüs leicht verzögert, schon nach sehr kurzer Zeit ging mir das so auf den Zeiger, daß ich es sofort wieder ausgebaut habe. Es empfiehlt sich also, ausgiebig auf der eigenen Site zu surfen, dann merkt man schnell, wie nervig diese ganze Effekthascherei in Wirklichkeit ist. Mir gehen zur Zeit diese blöden Popups auf den Zeiger, die beim Überfahren bestimmte Wörter in Text irgendwelche Werbelinks einblenden. Gut, zu 95% steht mein Opera eh auf JS:aus Cookies:aus Plugins:aus Referrer:aus, aber manchmal vergesse ich halt, es wieder abzuschalten, wenn ich doch irgendwo JS aktiviert hatte. Von seitlich ein- und ausfahrenden Werbe-Layern wollen wir gar nicht erst anfangen :)
Ich will mein Web 0.9 wiederhaben!!
Cü,
Kai
Grundlage für Zitat #1602.
Ich will mein Web 0.9 wiederhaben!!
So, du willst also wieder Herr über deine Maus werden.
mfg Beat
Einfach die Variable, in der das Interval gespeichert ist, auslesen, funktioniert nicht. Da erhalte ich eine Zahl, die mir angibt, wie oft da schon ein Interval gestartet wurde. Die wird folglich einfach immer größer.
Selbst wenn es so wäre, wieso geht das nicht? Wenn der Interval noch nicht gestartet ist, hat die Variabel keinen Wert, d.h. du musst nur prüfen ob dort etwas anderes als kein Wert steht.
Struppi.
Hallo PoWl_238,
Einfach die Variable, in der das Interval gespeichert ist, auslesen, funktioniert nicht. Da erhalte ich eine Zahl, die mir angibt, wie oft da schon ein Interval gestartet wurde. Die wird folglich einfach immer größer. Manchmal, wenn ich den Browser ne Weile allein lasse und dann wieder öffne, nimmt diese sogar irgendwelche utopischen Werte wie 2342234 oder 95605 an..
du musst beim Anlegen und nach dem clearInterval diese Variable auf z.B. Null setzen, dann kannst du prüfen, ob gerade ein Intervall läuft.
Gruß, Jürgen
Kann ich irgendwie prüfen, ob ein bestimmtes Interval schon am laufen ist?
setInterval hat einen Rückgabewert, den du doch auch brauchst um ihn zu stoppen. Diesen Wert kannst du doch verwenden ob das zu prüfen.
Struppi.