ScrollTop js - Firefox 不工作
ScrollTop js - Firefox doesn't work
我的 scrollTop javascript 代码有问题,仅适用于 firefox。我在 href 链接上放置了一些锚点,只有在 chrome/explorer 上才能实现平滑滚动。在 Firefox 上没有。它仅在该按钮上跳转,但不会滚动到该按钮。
Firefox 控制台错误:该站点似乎使用了滚动链接定位效果。这可能不适用于异步平移;请参阅 https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects 了解更多详情并加入有关相关工具和功能的讨论!
我的代码:
if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
$scrollWrapper = $(document);
scroll = function scroll(value, hash) {
$scrollWrapper.scrollTop(value);
currentHash = hash;
};
} else {
$scrollWrapper = $('html, body');
scroll = function scroll(value, hash) {
$(document).off('scroll.currentHash');
$scrollWrapper.animate({
scrollTop: value + 30
}, {
delay: 500,
complete: function () {
currentHash = hash;
}
});
};
}
Firefox 将溢出置于 html 级别,除非专门设计为不同的行为。
要使其在 Firefox 中运行,请使用
$('body,html').animate( ... );
工作示例
http://jsfiddle.net/4etct/
CSS 解决方案是设置以下样式:
html { overflow: hidden; height: 100%; }
body { overflow: auto; height: 100%; }
我认为 JS 解决方案的侵入性最小。
我的 scrollTop javascript 代码有问题,仅适用于 firefox。我在 href 链接上放置了一些锚点,只有在 chrome/explorer 上才能实现平滑滚动。在 Firefox 上没有。它仅在该按钮上跳转,但不会滚动到该按钮。
Firefox 控制台错误:该站点似乎使用了滚动链接定位效果。这可能不适用于异步平移;请参阅 https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects 了解更多详情并加入有关相关工具和功能的讨论!
我的代码:
if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
$scrollWrapper = $(document);
scroll = function scroll(value, hash) {
$scrollWrapper.scrollTop(value);
currentHash = hash;
};
} else {
$scrollWrapper = $('html, body');
scroll = function scroll(value, hash) {
$(document).off('scroll.currentHash');
$scrollWrapper.animate({
scrollTop: value + 30
}, {
delay: 500,
complete: function () {
currentHash = hash;
}
});
};
}
Firefox 将溢出置于 html 级别,除非专门设计为不同的行为。
要使其在 Firefox 中运行,请使用
$('body,html').animate( ... );
工作示例 http://jsfiddle.net/4etct/ CSS 解决方案是设置以下样式:
html { overflow: hidden; height: 100%; }
body { overflow: auto; height: 100%; }
我认为 JS 解决方案的侵入性最小。