在Windows Phone上的IE中平滑滚动动画到页面的各个部分

时间:2014-01-08 13:41:51

标签: jquery windows-phone

我有一个页面,其中包含各个部分以及指向这些部分的链接。我用以下方法实现了滚动动画:

$(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)上滚动不稳定,并且该部分的顶部已经用完。

任何想法如何使其发挥作用?

1 个答案:

答案 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);
    });
}