WordPress.org

Make WordPress Core

Ticket #18758: 19534.diff

File 19534.diff, 1.8 KB (added by ericmann, 3 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 )