情况:对于每个锚链接,我希望平滑滚动到锚链接。接下来,我想为特定的锚链接设置偏移量(例如,只有导航的链接,但没有网站上的锚链接)。最后我想添加媒体查询..所以偏移位置应该只适用于定义的浏览器尺寸(例如“最大宽度:767px”)。
第一个问题:我的平滑滚动只有在禁用其他功能(偏移定位)时才有效。两者一起不起作用。有什么帮助吗? 第二个问题:我不知道如何仅将“偏移定位”减少为“导航”锚链接。
// Smooth Scrolling
$(function () {
'use strict';
$('a[href*=#]').click(function () {
if (location.pathname.replace(/^\//, '') === this.pathname.replace(/^\//, '') && location.hostname === this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top
}, 300);
return false;
}
}
});
});
// Offset Positioning
function offsetAnchor() {
'use strict';
if (location.hash.length !== 0) {
window.scrollTo(window.scrollX, window.scrollY - 0);
}
}
// Offset Positioning with media query
function offsetAnchor() {
'use strict';
if (matchMedia('only screen and (max-width: 767px)').matches) {
if (location.hash.length !== 0) {
window.scrollTo(window.scrollX, window.scrollY - 220);
}
}
}
// This will capture hash changes while on the page
$(window).on("hashchange", function () {
'use strict';
offsetAnchor();
});
我通过搜索here和其他网站获得了代码,我没有自己编写。我想尽快学习 javascript 和 jquery 的基础知识。但是现在能得到你们所有人的帮助会很棒。十分感谢!
鲍里斯