Project: moodle
Issue MDL-46777: Improve behaviour of grader header, footer and sidebar on iOS 8 + IE
This issue relates to jankiness of the grader report on IE and iOS 8 Beta 4 (Safari). In iOS versions < 8, the scroll event is only fired at the end of the action, and not throughout so this is not an issue. From iOS 8 (tested with beta 4 on Safari), the scroll event is fired throughout. However, it is not fired frequently enough, resulting in a stuttering feeling. IE just sucks at tables and with a large table in the DOM, it stutters without any javascript at all. Adding the floating headers makes this more apparent for the same reason that iOS 8 appears to stutter - the scroll event is not called frequently enough, and it looks like it's stuttering as a result. We've tried several fixes for this already, and at present the code is highly optimised so that the fewest number of calculations occurs. The code also batches UI changes to reduce layout thrashing. In one sense, it would be nice to use a position of fixed, but this has it's own issues too: * iOS has a long-standing known issue where fixed items gradually disappear off the screen. As far as I can tell, there is no known fix for the iOS fixed issue, so to keep it from disappearing off screen, we would have to maintain the current solution of relative positioned elements. Maintaining two methods for this is not an ideal situation - especially just for a single ecosystem.
Story points: 5