我有平滑的锚滚动工作,但是当来自其他页面时它不起作用。如何修复由于固定标题引起的滚动位置?
网址:http://merck-dev.immaculate.co.uk/rebif/mri/#cis
当前的JS:
// to top right away
if ( window.location.hash ) scroll(0,0);
// void some browsers issue
setTimeout( function() { scroll(0,0); }, 1);
$(function() {
// your current click function
$('.scroll').on('click', function(e) {
e.preventDefault();
$('html, body').animate({
scrollTop: $($(this).attr('href')).offset('100').top + 'px'
}, 1000, 'swing');
});
// *only* if we have anchor on the url
if(window.location.hash) {
// smooth scroll to the anchor id
$('html, body').animate({
scrollTop: $(window.location.hash).offset('100').top + 'px'
}, 1000, 'swing');
}
答案 0 :(得分:1)
我找到了你的问题 - 这就是解决方案:
// *only* if we have anchor on the url
if(window.location.hash) {
var offset = -100;
// smooth scroll to the anchor id
$('html, body').animate({
scrollTop: ($(window.location.hash).offset().top + offset) + 'px'
}, 1000, 'swing');
}
自定义偏移值以平滑滚动到所需位置