平滑滚动阻止我离开页面

时间:2017-03-05 00:10:56

标签: javascript jquery

我是Jquery的新手,所以现在我尝试使用已经制作的代码并理解它。 我使用了流畅的滚动代码,但如果我不删除

,它会阻止我离开页面
event.preventDefault();

但是,如果我删除它,它会在三分之一秒内变为空白,因为它会转到锚点然后执行滚动。

以下是代码:

$(document).ready(function(){
 $("a").on('click', function(event) {
 if (this.hash !== ""){ //here is my problem I think
  //Prevent default anchor click behavior
  event.preventDefault(); //here is what makes me unable to leave page
  var hash = this.hash;
  $('html, body').animate({
   scrollTop: $(hash).offset().top
  }, 800, function(){
   window.location.hash = hash;
  });
  } // End if
 });
});

我想做的是:

if(this.hash !== "" && this.split('#')[0] != location.split('#')[0])

但是代码只是没有执行,我尝试了其他几种方式,但是一旦我试图操纵这个',即使我把它放在另一个变量然后操纵变量,它不会起作用。

那么,如何使用" event.preventDefault()"?

访问其他页面?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以将if语句更改为此...

if (this.hash !== "" && this.href.split('#')[0] != location.href.split('#')[0])

这应该有用。