我的网站上有一个scrollTo
锚链接脚本,偏移量为-35px,因为导航栏的高度为35px。有时在不同的分辨率(智能手机或平板电脑)上,我需要更改偏移值。如何在此脚本中执行此操作?
$(document).ready(function() {
$('.scrollTo').click( function() { // Au clic sur un élément
var page = $(this).attr('href') ; // Page cible
var speed = 300; // Durée de l'animation (en ms)
$('html, body').animate( { scrollTop: $(page).offset().top - 35 }, speed ); // Go
return false;
});
});
最佳答案
最简单的常规解决方案是将偏移量基于导航栏的高度:
$('.scrollTo').click( function() { // Au clic sur un élément
var page = $(this).attr('href') ; // Page cible
var speed = 300; // Durée de l'animation (en ms)
var height = $(...nav bar selector...).height();
$('html, body').animate( { scrollTop: $(page).offset().top - height }, speed ); // Go
// ^^^^^^
return false;
});
但是,如果您需要根据媒体查询调整JS,则应使用
matchMedia
:if (matchMedia('(min-width: 768px)').matches) {
...larger screens...
} else {
...smaller screens...
}
这样的好处是它将与CSS中使用的媒体查询完全匹配。如果您调用
$(window).width()
,则可能无法完全匹配媒体查询,具体取决于某些浏览器是否显示了滚动条。