所以我真的不熟悉Javascript / jQuery,试图教自己,现在我不明白为什么有些东西行不通。

基本上,我的网站上有一个菜单,单击链接后,我希望它向下滚动到锚点。哪个真的很好。

但是现在我还需要以下内容:当窗口宽度小于360px时,我希望滚动停止在锚点上方80px。

现在可以正常工作:

jQuery(function() {

 jQuery('.moduletable_resmenu a').click(function(){
     jQuery('html,body').animate({
        scrollTop: jQuery(jQuery(this).attr('href')).offset().top
     }, 1000);
     return false;
  });
});


还有:

jQuery(function() {

 jQuery('.moduletable_resmenu a').click(function(){
     jQuery('html,body').animate({
        scrollTop: jQuery(jQuery(this).attr('href')).offset().top-80
     }, 1000);
     return false;
  });
});


但是,当我尝试将它们合并并包含if / else语句时,它不起作用:

jQuery(function() {

 jQuery('.moduletable_resmenu a').click(function(){
  if ($(window).width() < 360){
     jQuery('html,body').animate({
        scrollTop: jQuery(jQuery(this).attr('href')).offset().top-80
     }, 1000);
     return false;
  }
  else {
     jQuery('html,body').animate({
        scrollTop: jQuery(jQuery(this).attr('href')).offset().top
     }, 1000);
     return false;
  }
 });
});


我可能只是对Javascript / jquery没有足够的了解,有人可以帮助我并告诉我需要做些什么才能使它正常工作吗?

非常感谢

最佳答案

我在检查控制台后发现了错误,错误显示:“ TypeError:$不是函数”-显然这是Joomla特定的东西,默认情况下,如果您在Joomla中将jQuery排队,则使用“ jQuery”而不是“ $”-我将代码更改为

jQuery(function() {

 jQuery('.moduletable_resmenu a').click(function(){
// $ to jQuery
  if (jQuery(window).width() < 360){
     jQuery('html,body').animate({
        scrollTop: jQuery(jQuery(this).attr('href')).offset().top-80
     }, 1000);
     return false;
  }
  else {
     jQuery('html,body').animate({
        scrollTop: jQuery(jQuery(this).attr('href')).offset().top
     }, 1000);
     return false;
  }
 });
});


现在就可以了!

09-10 11:21
查看更多