我有一个页面,其中包含各个部分以及指向这些部分的链接。我用以下方法实现了滚动动画:
$(function() {
$('a[href*=#]:not([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
}, 1000);
return false;
}
}
});
});
这在Chrome,Safari,Firefox以及iOS 7和Android上完美运行,但在Windows Phone(8与IE)上滚动不稳定,并且该部分的顶部已经用完。
任何想法如何使其发挥作用?
答案 0 :(得分:0)
IE有一个平滑滚动功能的错误,动画直到滚动后才会触发。
IE11的所有win8用户默认开启。
这是我用来修复固定标题上的jerkeyness的内容。
if(navigator.userAgent.match(/Trident\/7\./)) {
$('body').on("mousewheel", function () {
event.preventDefault();
var wd = event.wheelDelta;
var csp = window.pageYOffset;
window.scrollTo(0, csp - wd);
});
}