所以我真的不熟悉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;
}
});
});
现在就可以了!