WordPress.org

Make WordPress Core

Ticket #18758: 19534.diff

File 19534.diff, 1.8 KB (added by ericmann, 6 years ago)

Adding a patch that had been applied to an (apparently) duplicate ticket.

  • js/admin-bar.dev.js

     
    5959                        target.siblings('.ab-sub-wrapper').find('.ab-item').each(refresh);
    6060                });
    6161
     62                $('#wpadminbar').click(function(e) {
     63                        if(e.target.id != "wpadminbar") return;
     64                        e.preventDefault();
     65
     66                        $('html, body').animate({ scrollTop: 0 }, 'fast');
     67                });
     68
    6269        });
    6370} else {
    6471        (function(d, w) {
     
    180187                        return false;
    181188                };
    182189
     190                scrollToTop = function(t) {
     191                        if(t.id != 'wpadminbar') return;
     192
     193                        var startY = (function() {
     194                                        if (self.pageYOffset) return self.pageYOffset;
     195
     196                                        if (document.body.scrollTop) return document.body.scrollTop;
     197
     198                                        return 0;
     199                                })(),
     200                                stopY = 0,
     201                                distance = stopY > startY ? stopY - startY : startY - stopY;
     202
     203                        if (distance < 100) {
     204                                scrollTo(0, stopY); return;
     205                        }
     206
     207                        var speed = Math.round(distance / 100),
     208                                step = Math.round(distance / 25),
     209                                leapY = stopY > startY ? startY + step : startY - step,
     210                                timer = 0;
     211
     212                        speed = (speed >= 20) ? 20 : speed;
     213
     214                        if (stopY > startY) {
     215                                for ( var i=startY; i<stopY; i+=step ) {
     216                                        setTimeout("window.scrollTo(0, "+leapY+")", timer * speed);
     217                                        leapY += step; if (leapY > stopY) leapY = stopY; timer++;
     218                                }
     219
     220                                return;
     221                        }
     222
     223                        for ( var i=startY; i>stopY; i-=step ) {
     224                                setTimeout("window.scrollTo(0, "+leapY+")", timer * speed);
     225                                leapY -= step; if (leapY < stopY) leapY = stopY; timer++;
     226                        }
     227                };
     228
    183229                addEvent(w, 'load', function() {
    184230                        aB = d.getElementById('wpadminbar');
    185231
     
    198244                                });
    199245
    200246                                addEvent(aB, 'click', clickShortlink );
     247
     248                                addEvent(aB, 'click', function(e){
     249                                        scrollToTop(e.target);
     250                                });
    201251                        }
    202252
    203253                        if ( w.location.hash )