所以我真的很想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,有人可以帮助我并告诉我我需要做什么才能使这个工作?
非常感谢
答案 0 :(得分:0)
我在检查控制台后想出来了,错误显示:“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;
}
});
});
现在它有效!