mediawiki.notification: Use css() instead of slow show()/hide()
authorTimo Tijhof <krinklemail@gmail.com>
Wed, 4 Oct 2017 20:08:46 +0000 (21:08 +0100)
committerTimo Tijhof <krinklemail@gmail.com>
Wed, 4 Oct 2017 20:08:46 +0000 (21:08 +0100)
There is a lot of complexity and overhead involved with show()
and hide() methods for back-compat and edge cases that we don't
want to involve here (such as storing the last known display,
figuring out the default display, dealing with elements hidden
by default via CSS rules etc.).

We know the stylesheet does not hide the element by default, so
we merely need to set or unset the 'display: none;' inline style.

Ref T159911.

Change-Id: Ia22a2adddddf8514368124d93e3a753440814d97

resources/src/mediawiki/mediawiki.notification.js

index dfacfc6..c213cd2 100644 (file)
        Notification.prototype.start = function () {
                var options, $notification, $tagMatches, autohideCount;
 
-               $area.show();
+               $area.css( 'display', '' );
 
                if ( this.isOpen ) {
                        return;
                                if ( openNotificationCount === 0 ) {
                                        // Hide the area after the last notification closes. Otherwise, the padding on
                                        // the area can be obscure content, despite the area being empty/invisible (T54659). // FIXME
-                                       $area.hide();
+                                       $area.css( 'display', 'none' );
                                        notif.$notification.remove();
                                } else {
                                        notif.$notification.slideUp( 'fast', function () {
                // Prepend the notification area to the content area and save it's object.
                mw.util.$content.prepend( $area );
                offset = $area.offset();
-               $area.hide();
+               $area.css( 'display', 'none' );
 
                function updateAreaMode() {
                        var shouldFloat = window.pageYOffset > offset.top;