javascript - 使用动画和滚动时闪烁

标签 javascript jquery html css

$('.mainNav a[href^="#"]').on('click', function (event) {
   var target = $(this.getAttribute('href'));
   if (target.length) {
     event.preventDefault();
     $('body').stop(true).animate({
       scrollTop: target.offset().top - 130
     }, 1000);
   }
  return false;
});

我尝试使用 preventDefault() 但仍然闪烁

最佳答案

这是我会做的:
- 你不需要 return false 因为你使用了 preventDefault() 并且你应该把它放在任何条件语句之前
- 你不需要 stop() 函数中的 true
- 你应该使用 $('html, body') 而不是 $('body')

$('.mainNav a[href^="#"]').on('click', function (event) {
   var target = $($(this).attr('href'));
   event.preventDefault();
   if (target.length){
       $('html, body').stop().animate({
           scrollTop: target.offset().top - 130
       }, 1000);
   }
});

但如果它不能解决您的问题,也许可以做一个 jsfiddle 或 codepen 来向我们展示?因为闪烁可能是由于脚本本身以外的其他因素造成的。

关于javascript - 使用动画和滚动时闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38722424/

相关文章:

jquery - 根据 slider 的事件状态自动添加和删除元素的类。不是点击,而是自动更改

html - 自动放置文本并与其他文本相关

css - Bootstrap center 导航栏中间

javascript - 拼接方法不起作用

javascript - Flowtype 中的 ES6 map

javascript - 自定义 CSS 按钮动画在 MVC C# 局部 View 中不起作用

php - 根据选定的单选按钮隐藏 div

javascript - 动态和永久地向您的页面添加元素 - Javascript/jQuery

javascript - 通过ajax调用显示加载状态

javascript - jQuery Tokeninput 和 onFreeTaggingAdd 回调