【问题标题】:Optimize Javascript code [closed]优化Javascript代码[关闭]
【发布时间】:2017-02-18 08:38:23
【问题描述】:

我请任何方式来优化和压缩该 js 代码

$("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;
    });
});

请告诉我有关如何加速我网站中所有 JavaScript 代码的提示?

【问题讨论】:

  • 除非您有特定问题,否则这种事情更适合codereview.stackexchange.com
  • @charlietfl 不要向其他网站推荐一般低质量的问题。仅在该站点实际上可以接受时才建议迁移,包括所有关于清晰度的规则。
  • 首先获取 nav/nav2,然后从 nav/nav2 获取 num/num2 - 一般来说,尽量少使用 jquery ...此建议删除两个 jquery 调用,这可以节省几纳秒
  • 你测量了吗?如果是这样,您认为什么是瓶颈?如果你没有,那么就这样做,然后编辑问题。
  • @Kroltan 这不符合标准吗?似乎与代码审查帮助中关于主题内容的每个清单项相匹配

标签: javascript optimization


【解决方案1】:

您可以使用名为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);
    });
});

【讨论】:

  • 好的,非常感谢......祝大家好运:)
猜你喜欢
  • 1970-01-01
  • 2011-11-02
  • 2011-11-03
  • 1970-01-01
  • 1970-01-01
  • 2016-11-04
  • 2011-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多