Javascript Jquery粘性导航在满足特定条件时启动

Javascript Jquery粘性导航在满足特定条件时启动,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我已经成功地创建了一个粘性导航,效果非常好。但是,我希望在浏览器低于或等于770px时启动或运行粘性导航 到目前为止,这是我的代码 $j = jQuery.noConflict(); $j(document).ready(function() { var navOffset = $j(".main-nav").offset().top; var wi = $j(window).width(); var sticky; $j(".responsive-icon").wrapInn

我已经成功地创建了一个粘性导航,效果非常好。但是,我希望在浏览器低于或等于770px时启动或运行粘性导航

到目前为止,这是我的代码

$j = jQuery.noConflict();

$j(document).ready(function() {
  var navOffset = $j(".main-nav").offset().top;
  var wi = $j(window).width();
  var sticky;
  $j(".responsive-icon").wrapInner('<div class="value"></div>');
  $j(".main-nav").wrap('<div class="nav-placeholder"></div>');
  $j(".nav-placeholder").height($j(".main-nav").outerHeight());

  function stickyFunction() { /*Sticky navigation function*/
    sticky = $j(window).scroll(function() {
              var scrollPos = $j(window).scrollTop();
              if (scrollPos >= navOffset) {
                $j(".main-nav").attr("id", "fixed-menu");
              } else {
                $j(".main-nav").removeAttr("id");
              }
            });
    return sticky;
  }

  if(wi <= 770) { /* Suppose to Fires up immediately if the browser is lower than 770px */
      stickyFunction();
    }
  $j(window).resize(function() { /*Suppose to fires up if the browser resize*/
    if(wi <= 770) {
      stickyFunction();
    }
  });
});
当浏览器宽度满足条件时,如何调用stickyfunction来运行


谢谢

只需将sticky用作滚动事件,并尝试在窗口调整大小事件中使用滚动事件,这样就不会在调整大小窗口中触发函数。。 用这个

而不是

function stickyFunction() { /*Sticky navigation function*/
    sticky = $j(window).scroll(function() {
              var scrollPos = $j(window).scrollTop();
              if (scrollPos >= navOffset) {
                $j(".main-nav").attr("id", "fixed-menu");
              } else {
                $j(".main-nav").removeAttr("id");
              }
            });
    return sticky;
  }
并将事件设置为窗口滚动

$j(window).on('scroll', stickyFunction);
万一

$j(window).on('resize',function() { /*Suppose to fires up if the browser resize*/
 wi = $j(window).width();        
 if(wi <= 770) {
      stickyFunction();
    }
  });

谢谢你的简化和更好的逻辑。我希望仅当浏览器低于770px时才运行此效果。@rodge调整大小时,您应该计算window.width。。请参阅更新的答案谢谢!问题是,在调整浏览器大小时,宽度会更新。
$j(window).on('resize',function() { /*Suppose to fires up if the browser resize*/
 wi = $j(window).width();        
 if(wi <= 770) {
      stickyFunction();
    }
  });