.animate()无法在Wordpress网站上运行

时间:2014-06-17 11:06:59

标签: javascript jquery wordpress scroll jquery-animate

我正在尝试在与页面上的hashbang链接关联的滚动上使用动画效果。

当我在常规网站上使用它时,它可以很好地工作。

一旦我尝试在wordpress网站上使用它就没有动画,它只是跳转到DIV而不是滚动。

jQ代码(尝试将它放在头部,主体和页脚中(没有区别):

<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function(){
$('a[href^="#"]').on('click',function (e) {
    e.preventDefault();

    var target = this.hash,
    $target = $(target);

    $('html, body').stop().animate({
        'scrollTop': $target.offset().top
    }, 900, 'swing', function () {
        window.location.hash = target;
    });
});
});
</script>

以下是我当前版本的JQuery,以防出现问题?

的jquery.js?版本= 1.11.0

的jquery-migrate.min.js?版本1.2.1 =

可能是wordpress加入脚本的顺序吗?

任何想法,因为我把头发拉到这里!

2 个答案:

答案 0 :(得分:1)

改为:

<script type="text/javascript">
    jQuery(document).ready(function($){ // pass $ as an arg here

您需要在准备好的回调中将$作为参数传递,并且您不需要jQuery.noConflict();,因此请将其删除。


因为wordpress使用jQuery代替$,所以这不会与使用$作为别名的其他库发生冲突,所以你可以做两件事

  1. 按照上面的建议或
  2. 进行
  3. 用jQuery替换$的每一次出现。

答案 1 :(得分:1)

尝试使用wrap (function($){ //your content })(jQuery);

(function($){
    $(document).ready(function(){
        $('a[href^="#"]').on('click',function (e) {
            e.preventDefault();
            var target = this.hash,
            $target = $(target);

            $('html, body').stop().animate({
                'scrollTop': $target.offset().top
            }, 900, 'swing', function(){
                window.location.hash = target;
            });
        });
    });
})(jQuery);