WordPress.org

Make WordPress Core

Ticket #18758: 18758.diff

File 18758.diff, 1.9 KB (added by ericmann, 2 years ago)

New patch cleans up some code and makes a few conditional statements easier to follow.

  • wp-includes/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                                distance = startY > 0 ? startY : -startY; 
     201 
     202                        if (distance < 100) { 
     203                                scrollTo(0, 0); return; 
     204                        } 
     205 
     206                        var speed = Math.round(distance / 100), 
     207                                step = Math.round(distance / 25), 
     208                                leapY = startY > 0 ? startY - step : startY + step, 
     209                                timer = 0; 
     210 
     211                        speed = (speed >= 20) ? 20 : speed; 
     212 
     213                        if (0 > startY) { 
     214                                for ( var i = startY; i < 0; i += step ) { 
     215                                        setTimeout("window.scrollTo(0, " + leapY + ")", timer * speed); 
     216                                        leapY += step; 
     217                                         
     218                                        if (leapY > 0) { 
     219                                                leapY = 0;  
     220                                        } 
     221                                         
     222                                        timer++; 
     223                                } 
     224 
     225                                return; 
     226                        } 
     227 
     228                        for ( var i = startY; i > 0; i -= step ) { 
     229                                setTimeout("window.scrollTo(0, " + leapY + ")", timer * speed); 
     230                                leapY -= step;  
     231                                 
     232                                if (leapY < 0) { 
     233                                        leapY = 0; 
     234                                } 
     235                                 
     236                                timer++; 
     237                        } 
     238                }; 
     239 
    183240                addEvent(w, 'load', function() { 
    184241                        aB = d.getElementById('wpadminbar'); 
    185242 
     
    198255                                }); 
    199256 
    200257                                addEvent(aB, 'click', clickShortlink ); 
     258 
     259                                addEvent(aB, 'click', function(e){ 
     260                                        scrollToTop(e.target); 
     261                                }); 
    201262                        } 
    202263 
    203264                        if ( w.location.hash )