1

我在 IE 中的滚动功能有问题。

这里的代码http://jsfiddle.net/VdNQL/

这里的问题是,当你点击链接(顶部)时,它会去特定的地方,但在它去之后它只是窝棚一次。很高兴在 Firefox 和 chrome 中查看。我认为问题是jQuery。这是我的jQuery。

        $(document).ready(function(){            
        $(window).scroll(function(){
            if ($(this).scrollTop() > 50) {
                $('div').addClass("k");
            } else {
                $('div').removeClass("k");
            }
        }); 

   $("a").bind('click', function() {
    var hash = $(this).attr("href");
    $('html, body').animate({ scrollTop: $(hash).position().top - 50 }, 1000);
  });

  });

谢谢你的建议。

4

3 回答 3

4

只需停止链接元素的默认操作.preventDefault()

$("a").bind('click', function(ev) {
    ev.preventDefault();

    var hash = $(this).attr("href");
    $('html, body').animate({ scrollTop: $(hash).position().top - 50 }, 1000);
});

http://jsfiddle.net/VdNQL/2/

于 2013-01-04T11:58:27.410 回答
1

那是因为您的 href 点击也在尝试同时工作。防止默认的 a href 行为。这消除了混蛋/摇晃行为。

$("a").bind('click', function(event) {
    event.preventDefault();
    var hash = $(this).attr("href");
    $('html, body').animate({ scrollTop: $(hash).position().top - 50 }, 1000);
});
于 2013-01-04T11:59:32.777 回答
-1

在您的代码中,当窗口滚动顶部大于 50 时,您将k类添加到 div 中。在 k 类中,您将顶部设置为1px。因此,您的脚本会将顶部设置为 1px,然后启动动画。我希望这就是在 IE 中使用 shacking 的原因。

于 2013-01-04T12:01:45.437 回答