1

我正在为我目前正在处理的网站使用平滑滚动脚本,但我遇到了一个非常烦人的问题,这是我以前使用相同脚本时遇到的问题。它工作得很好而且很流畅,但是当我点击导航点之一时,应该引导我到我试图定位的 div(或 a),它会向我显示目标区域 0.1 秒,然后它开始滚动. 它不会每次都发生,但经常足以令人讨厌。我怎么能防止这种情况?这是我正在谈论的脚本:

$(window).load(function(){
                $(".contactLink").click(function(){
                    if ($("#contactForm").is(":hidden")){
                        $("#contactForm").slideDown("slow");
                    }
                    else{
                        $("#contactForm").slideUp("slow");
                    }
                });
            });
            function closeForm(){
                $("#messageSent").show("slow");
                setTimeout('$("#messageSent").hide();$("#contactForm").slideUp("slow")', 2000);
           }

$(window).load(function() {
  function filterPath(string) {
    return string
      .replace(/^\//,'')
      .replace(/(index|default).[a-zA-Z]{3,4}$/,'')
      .replace(/\/$/,'');
  }
  $('a[href*=#]').each(function() {
    if ( filterPath(location.pathname) == filterPath(this.pathname)
    && location.hostname == this.hostname
    && this.hash.replace(/#/,'') ) {
      var $targetId = $(this.hash), $targetAnchor = $('[name=' + this.hash.slice(1) +']');
      var $target = $targetId.length ? $targetId : $targetAnchor.length ? $targetAnchor : true;
       if ($target) {
         var targetOffset = $target.offset().top - 110;
         $(this).click(function() {
           $('html, body').animate({scrollTop: targetOffset}, 1400);
           var d = document.createElement("div");
        d.style.height = "101%";
        d.style.overflow = "hidden";
        document.body.appendChild(d);
        window.scrollTo(0,scrollToM);
        setTimeout(function() {
        d.parentNode.removeChild(d);
            }, 10);
           return false;
         });
      }
    }
  });
});
4

2 回答 2

1

找到了解决方案:

 $(this).click(function(e) {
               e.preventDefault();

现在它滚动得很好。

于 2013-11-05T14:27:31.340 回答
1
setTimeout(function() {
    d.parentNode.removeChild(d);
        }, 10);
       return false;
     });

移出return false_setTimeOut

于 2013-11-04T18:32:05.983 回答