滚动功能IE出错

时间:2013-01-04 11:54:53

标签: javascript jquery html css

我在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);
  });

  });

谢谢你的建议。

3 个答案:

答案 0 :(得分: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/

答案 1 :(得分:1)

这是因为你的href点击也试图同时工作。防止默认的href行为。这改变了混蛋/摇晃行为。

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

答案 2 :(得分:-1)

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