Extensions designed to enrich your browsing experience

modern scroll meets aviation

Sometimes it's useful to possess knowledge in areas that are totally unrelated to what you actually want to do.

Are you interested in learning about autopilots? :sherlock: …

final RC:
fix: horizontal bar doesn't get updated (mouse scrolling on bar)
fix: horizontal touchpad scrolling isn't working (I had to fix this blindly since I still do not have the possibility to test it. AndrΓ©, Lauren: is it working now?)
upd: descriptions, screenshot etc.

RC 2:
split "use custom scrolling functions" into two separate settings for mouse and keyboard

RC:
fix:
scroll buttons and horizontal background bars stopped working
fix: if you release the mouse over the scroll buttons while dragging the scroll bars, the buttons jump to the left in the options page
fix: docs.sencha.com (excluded)

So, what does an autopilot have in common with scrolling?
Well, they're now working similarly! πŸ™„

I deleted my core scrolling function entirely and started from scratch to get the performance up to the level of scrolling with the arrow keys.
I thought about different approaches, but all of them involved a decent amount of calculations, which would slow down scrolling again. Then it suddenly popped into my head: I learned about autopilots during my job training. They basically consist of two loops: an outer and an inner one πŸ’‘

The outer loop
is the basic interface to interact with. You can e.g. set an intended course. It'll then start to calculate all initially needed starting parameters and will also clear things up as soon as the intended course is reached.

The inner loop
starts working as soon as there is a deviation from the desired value (which you chose via the outer loop). It'll steer into the needed direction to eliminate the given offset.

And that's exactly how scrolling works now πŸ™‚
There's an outer function which sets the target value to scroll to. Then it'll call the inner one, which will scroll to the intended position. As soon as it is reached, the first function will take over again and finish it.

Additionally, all animated ways of scrolling now use the high-performance "fake" animation which you may know out of beta 1.

AndrΓ©'s issue (Home and End keys scroll horizontally to zero) is now fixed, too :up:

The mouse scrolling is now as direct as it can be. I hardly interfere with the whole process. What do you think about it?

And how is the general performance?

Advertisements

Comments on: "modern scroll meets aviation" (20)

  1. Man …… you, the guys at Microsoft, at Naughty Dog and Crytek are my technological idols.You keep showing (at least to) me that anything is freakin' possible with a bit of reverse-engineering.This extensions has officially become my #1 extension I install whenever I install Opera on my friends PC's.

  2. christoph142 said:

    :love:

  3. what can I say ? hein !! :eyes: :yikes: great work, I didn't test it enough for now, the scrolling seems great but I have to test it on some heavy websites πŸ˜€ (heavy testing ) .. I found a bug tho :whistle: :http://futurist.se/gldt/wp-content/uploads/12.10/gldt1210.svgscroll bars don't show and there is no way to scroll horizontally ! :ko: I found that page in the desktop team, and it's not that annoying if it's only one page, I'll keep testing thoughthanks again Christoph, :yes:

  4. christoph142 said:

    I'm so happy that you guys like it. I really wanna ready it for release soon :up:Concerning that "site": This isn't a website at all, but a sole SVG-image (and there's no possibility to manipulate an image with Javascript; btw: you can scroll it with the arrow keys (Opera's default scrolling)!).Since you got it out of the Desktop Team Blog, I guess that some guys already complained about the lack of a body around it… :sherlock: btw: I had to switch off Documents first to see the issue since it prevents it :up: πŸ˜€

  5. Originally posted by christoph142:

    Concerning that "site": This isn't a website at all, but a sole SVG-image (and there's no possibility to manipulate an image with Javascript; btw: you can scroll it with the arrow keys (Opera's default scrolling)!).

    as I said, it's not a big deal at all πŸ™‚ and I've really forgot about the keyboard scrolling as I'm an almost strict mouse user lol. other than that, I don't see any problem for now :hat: great workEdit: the extra " up and down " bars aren't working at all now πŸ˜‰

  6. christoph142 said:

    Originally posted by netmain:

    the extra " up and down " bars aren't working at all now

    Can you guys please call them "buttons". I get really confused every time I read "extra bars" in here πŸ™„ Thanks for reporting, though. It was just a little flaw: I rewrote (and in this case more importantly renamed) the core scrolling functions, but kept calling the old ones :doh:

  7. Originally posted by Acryion:

    You keep showing (at least to) me that anything is freakin' possible with a bit of reverse-engineering.

    :yes:

  8. Originally posted by christoph142:

    Can you guys please call them "buttons". I get really confused every time I read "extra bars" in here

    LOL as you like man, extra buttons :)congratulations for the RC, the up and down Buttons are working again, and performance seems really good .thanks for your hard work :yes:

  9. Sally K. writes:Looking really great, thanks πŸ™‚ |||| I've been playing around to get the most discreet, but functional, scrollbars. Setting 'hide backgrounds' is good for that, except when trying to use the mouse to click the invisible background. Could we have a setting, please, to make the background only appear on hover? |||| Any way to stop JS activity when the page has finished scrolling? e.g. spinning my freewheel mouse will scroll this ('heavy', 'cos of it's big background image) page from top to bottom in about 3 seconds, at 100% CPU. But unless I manually stop the wheel spinning, it will carry on at 100% CPU for another few seconds until the wheel slows to a stop. By contrast, without mscroll, the CPU usage stops as soon as the page stops scrolling.

  10. Iger writes:Omg, a working scrolling in Opera even on content-heavy sites. I'm in awe!

  11. Even if page is reached at end (bottom or top), scrolling mouse wheel cause cpu-usage, but no page scrolling (as page is already at end)!:left:

  12. Nice extension πŸ™‚ Thanks for this.Sadly a few bugs are still here (comment to recently 2.0 RC build)-Sometimes scrollbar is not shown at all. – only at some sites/pages (I'll try to send to you URLs when scrollbar is not shown)- FB problem – click messages and try scroll (the small window is not scrolled and instead of this is scrolled whole page)(using 12.12RC 2 only – still not on final)

  13. Originally posted by christoph142:

    Originally posted by ahoj1234:

    FB problem – click messages and try scroll

    Are you talking about scrolling with the mouse or the keyboard?

    about scroll wheel (with mouse)but I'm not in inbox.. I'm at my wall (for example) and click messages (small "pop-up" appears where are shorten messages from friends – dragonfly shows me that this is under ID "fbMessagesJewel")I hope that I'm clear.. edit: I have already tried it with clean install of 12.12 RC2 and this RC without any custom settings and bug is reproducible. I hope that you know what is going on πŸ™‚

  14. christoph142 said:

    I know what you're talking about. But I'm wondering cause I've been testing and implementing this very thoroughly and it works just fine over here.All you need to do is take your mouse over the element that you want to scroll (in this case the last sent messages) and it works (contrary to the default behavior it'll switch over and start scrolling the whole website as soon as the element can't be scrolled into this direction anymore. Maybe that's your problem?) ?!

  15. Originally posted by christoph142:

    Maybe that's your problem?) ?!

    will try on another PC. at least I will make a demo (.avi or .swf) to let you see..give me some time (couple of hours I think is enough)edit:I test it a few second ago on other PC – windows XP and other FB acc. also other Opera version – 12.11 final (W7 is mine OS). and the same result. And I really know what area is for that. if I disable your extension it is just fine. in another hours I will edit it again with proof – video.edit2: may help that all tested versions are as USB installation.. (I don't how extensions are being written and if this matter)edit3: RC2 doesn't solve it. so video:http://files.uloziste.com/7c8603ec0962bdfb/demo.avi(you can play it without downloading or simply download)-first I was trying to scroll using mouse wheelIn fact I was using scroll wheel all the test when it scrolls. Expect dragging bar (mouse was over bar..)

  16. christoph142 said:

    That's really strange. It's very hard to fix things that you cannot reproduce… (I tried a 12.11 USB install as well. It works just as good as my normal 12.12)Anybody else facing the same issue?

  17. final RC doesn't fix it. (as you know)Will disable this extension but also will follow you for updates. Hope that one day it will be reproduced on a few another PC's and you figure it out.

  18. Originally posted by christoph142:

    Are you interested in learning about autopilots?

    Yes please, can you share some usefull resources? :yes:

  19. christoph142 said:

    You can also just disable the custom scrolling functions for mouse scrolling if you want to. Scrolling is a really complex thing (which you can easily do wrong as you can see at Opera's default scrolling behavior :whistle:) and the possible problems are the reason why I made separate settings for mouse and keyboard πŸ˜‰

  20. christoph142 said:

    Originally posted by mubaidr:

    Even if page is reached at end (bottom or top), scrolling mouse wheel cause cpu-usage, but no page scrolling (as page is already at end)!:left:

    I expect you to be smart enough to stop scrolling when you reached the end of the page :DChecking this would have to be another additional calculation in each call in the inner loop, which of course will in turn lower performance.And I prefer performance over senseless checking :up: πŸ˜‰

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: