jqueryanimate方法——持续时间为';行不通

jqueryanimate方法——持续时间为';行不通,jquery,scroll,duration,Jquery,Scroll,Duration,我已经设置了jQuery滚动,但是持续时间不能正常工作。 在Wordpress网站的“关于页面”上,我想使用jQuery,这样在单击照片时,它会向下滚动到相应的div。滚动正常,但持续时间不正常。滚动大约需要1/4秒,我设置持续时间的速度并不重要。我所指的网站可以在以下网址看到: 下面是jQuery滚动条的源代码 $(function(){ $('a[href*=.staff_photos_indiv]').click(function() { if (location.

我已经设置了jQuery滚动,但是持续时间不能正常工作。 在Wordpress网站的“关于页面”上,我想使用jQuery,这样在单击照片时,它会向下滚动到相应的div。滚动正常,但持续时间不正常。滚动大约需要1/4秒,我设置持续时间的速度并不重要。我所指的网站可以在以下网址看到:

下面是jQuery滚动条的源代码

$(function(){
    $('a[href*=.staff_photos_indiv]').click(function() {
        if (location.pathname.replace(/^\//,") == this.pathname.replace(/^\//,") && location.hostname == this.hostname) {
            var $target = $target;
            $target = $(this.hash);
            $target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');
            if ($target.length) {
                var targetOffset = $target.offset().top;
                $('html,body').animate({scrollTop: targetOffset}, {easing:'easeInOutExpo',duration:1600});
                return false;
            }
        }
    }); 
});

jQuery选择器中有一个错误

未捕获错误:语法错误,无法识别的表达式:[href*=.staff\u photos\u indiv]

这就是为什么
click
事件甚至没有触发的原因。
您看到的只是以正常方式运行的
a href=“#…”

您在jQuery选择器中有一个错误

未捕获错误:语法错误,无法识别的表达式:[href*=.staff\u photos\u indiv]

这就是为什么
click
事件甚至没有触发的原因。
您所看到的只是以正常方式运行的
a href=“#…

调试方法是在chrome中打开页面,右键单击并选择最后一个菜单选项“Inspect Element”

选择右侧控制台的最后一个选项卡,您将看到JavaScript中是否存在任何错误:

Uncaught Error: Syntax error, unrecognized expression: [href*=.staff_photos_indiv] 
相反,请尝试更简单的选择器:

$('.staff_photos_indiv').click( ... 

调试的方法是在chrome中打开页面,右键单击并选择最后一个菜单选项“Inspect Element”

选择右侧控制台的最后一个选项卡,您将看到JavaScript中是否存在任何错误:

Uncaught Error: Syntax error, unrecognized expression: [href*=.staff_photos_indiv] 
相反,请尝试更简单的选择器:

$('.staff_photos_indiv').click( ... 

我猜想您没有定义“easeInOutExpo”easing函数,因为常规操作使用此代码:

$(document.body).animate(
    {scrollTop: "400px"}, {easing: "swing", duration: 1600}
);

而且,您可以在这里看到它的工作原理:

我猜您没有定义
'easeInOutExpo'
缓解功能,因为常规操作使用此代码:

$(document.body).animate(
    {scrollTop: "400px"}, {easing: "swing", duration: 1600}
);

您可以在这里看到它的作用:

谢谢您的回答。我已经对我的代码进行了更改,但这仍然没有改变持续时间在我的代码中仍然不能正常工作的事实?谢谢你的回答。我已经对我的代码进行了更改,但这仍然没有改变持续时间在我的代码中仍然不能正常工作的事实?嗯,是的,代码对我也适用。我认为问题在于“targetOffset”,但我不确定是否有其他方法可以使用特定的div。@mcranston18-要使用它,您需要在targetOffset中添加“px”单位?@mcranston18-当您将其传递给动画时,您应该正确添加单位。如果没有,jQuery可能会假设“px”单位(我不确定),但是底层CSS在所有维度上都需要单位。我认为问题在于“targetOffset”,但我不确定是否有其他方法可以使用特定的div。@mcranston18-要使用它,您需要在targetOffset中添加“px”单位?@mcranston18-当您将其传递给动画时,您应该正确添加单位。如果没有,jQuery可能会假定为“px”单位(我不确定),但底层CSS需要所有维度的单位。对于像我这样的人来说,确保duration是一个数字而不是字符串,这就解决了我的问题。对于像我这样的人来说,确保duration是一个数字而不是字符串,这解决了我的问题。