2016-10-09 23 views
-5

私はコード最適化Javascriptコード

$("document").ready(function($) { 
     var num = $('#menu').offset().top; 
     var num2 = $('#HTML2').offset().top; 
     var nav = $('#menu'); 
     var nav2 = $('#HTML2'); 
     $(window).scroll(function() { 
      if ($(this).scrollTop() > num) { 
       nav.addClass("menu-scroll"); 
      } else { 
       nav.removeClass("menu-scroll"); 
      } 
      if ($(this).scrollTop() > num2) { 
       nav2.addClass("html2fixs"); 
      } else { 
       nav2.removeClass("html2fixs"); 
      } 
     }); 
    $('#BackToTop').click(function(){ 
     $('html, body').animate({scrollTop : 0},300); 
     return false; 
    }); 
}); 

をJS &圧縮を最適化し、自分のサイト内のすべてのJavaScriptコードを加速する方法上の任意のヒントを喜ばせるためにどのような方法を喜ば?

+4

は、この種のものは、別のサイトに、一般的に低品質の質問にお勧めしないhttp://codereview.stackexchange.com/ – charlietfl

+0

@charlietflに適しています。実際にそのサイトで受け入れ可能な場合にのみ移行を提案し、明確性に関するすべてのルールが含まれています。 – Kroltan

+1

nav/nav2を最初に取得し、nav/nav2からnum/num2を取得する - 一般的にjqueryをできるだけ使用しないようにしてください...この提案は2ナノ秒を節約できるjquery呼び出しを2つ削除します –

答えて

0

toggleScriptというJQuery関数を使用すると、コードが短くなります。また、コードを読みやすくするために、すべての変数をnum1num2と呼ぶだけでなく、要素を変数に保存したときに、もう一度${}を呼び出す必要はありません。代わりに変数を使用してください。あなたは、特定の問題を抱えている場合を除き

$("document").ready(function() { 
 
    var menu = $('#menu'); //nav 
 
    var html2 = $('#HTML2'); //nav2 
 

 
    var menuOffsetTop = menu.offset().top; //num 
 
    var html2OffsetTop = html2.offset().top; //num2 
 

 

 
    $(window).scroll(function() { 
 
     var w = $(this); 
 

 
     menu.toggleClass('menu-scroll' , (w.scrollTop() > menuOffsetTop)); 
 
     /* 
 
     The same as 
 
     if (w.scrollTop() > menuOffsetTop) { 
 
      menu.addClass('menu-scroll') ; 
 
     } else { 
 
      menu.removeClass('menu-scroll'); 
 
     } 
 
     */ 
 
     html2.toggleClass('html2fixs' , (w.scrollTop() > html2OffsetTop)); 
 
    }); 
 

 
    $('#BackToTop').click(function(){ 
 
     $('html, body').animate({scrollTop : 0},300); 
 
    }); 
 
});

+0

okありがとうございます..&good luck guys :) –