我从另一篇文章中复制了这个,不是盲目的,我可以看到它的作用,但我无法想出解决问题的方法。我并不十分精通JavaScript,但我可以阅读这段代码。
// The function actually applying the offset
function offsetAnchor() {
if (location.hash.length !== 0) {
window.scrollTo(window.scrollX, window.scrollY - 100);
}
}
// This will capture hash changes while on the page
$(window).on("hashchange", function() {
offsetAnchor();
});
// This is here so that when you enter the page with a hash,
// it can provide the offset in that case too. Having a timeout
// seems necessary to allow the browser to jump to the anchor first.
window.setTimeout(function() {
offsetAnchor();
}, 3);
;(function($) {
$('.swipebox').swipebox();
})(jQuery);
问题在于,当我使用ID用作锚点时滚动到DIV时,由于我有一个粘性标题,我滚动得太远了。我尝试使用这个,所以在更改DIV时会考虑到粘性标题,它并不能完全正常工作,但我遇到的主要问题是,我将拥有超过12个导航DIV ID,并且每次都有单击它不再转到DIV,而是向上滚动-100像素。
我基本上需要一个解决方案,它会滚动到我需要它的上方,而不会影响我的其余菜单功能,它不一定要由JS实现,但这是唯一可行的方法我可以看到一个解决方案(我已经尝试过只考虑一个CSS但是在这种滚动情况下,边距/填充没有帮助)
要给出最后一个细节,当点击导航div时,它将滚动到该div,菜单(粘性标题)将覆盖部分图像,并且项目也会滚动。主要问题:)
如果您想要更好的描述并且我正在学习JS,我可以留下链接,但是这对于客户来说我很乐意能够及时修复它并且非常感谢任何人都可以提供的帮助。
谢谢。