使用最新jQuery的视差滚动无法正常工作

时间:2018-09-29 13:21:56

标签: javascript jquery parallax

我使用jQuery脚本实现视差效果。该脚本可以与旧版jQuery(直到1.11.3版)一起正常工作,但是当我将其替换为最新版本时,平滑的滚动效果不起作用。现在有人不再支持代码的哪一部分了吗?

$(document).ready(function() { 
  $('a[href*=#]').each(function() {  
    if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '')   && 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 : false;    
      if ($target) {     
        var targetOffset = $target.offset().top;

             
        $(this).click(function() {
          $("#nav li a").removeClass("active");
          $(this).addClass("active");      
          $('html, body').animate({
            scrollTop: targetOffset
          }, 1000);      
          return false;     
        });   
      }  
    } 
  });
});

1 个答案:

答案 0 :(得分:1)

它是选择器。

$('a[href*=#]')替换为$('a[href*="#"]')

从来都不是有效的选择器
当他们修复它时,所有使用有缺陷的(但直到那时为止)语法的脚本都损坏了。

在当时引起了很多动荡,尤其是因为许多“专业” WordPress主题都在使用它并整夜休息。当人们意识到自己购买的产品未能达到他们认为的基本功能时,看到他们的反应很有趣。

看到此问题:https://github.com/jquery/jquery/issues/2824