Jquery 变量不适用于内部的scrollTop值。animate()

Jquery 变量不适用于内部的scrollTop值。animate(),jquery,jquery-animate,position,offset,scrolltop,Jquery,Jquery Animate,Position,Offset,Scrolltop,Hi peeps想知道是否有人可以帮助我使用单击功能,应该为目标锚点设置动画,当使用一个整数作为scrollTop值时效果很好,但是当我传递一个变量时,它不喜欢它。有什么想法吗 $(".project a").click(function(event){ event.preventDefault(); var full_url = this.href; var parts = full_url.split("#"); var trgt = parts[1];

Hi peeps想知道是否有人可以帮助我使用单击功能,应该为目标锚点设置动画,当使用一个整数作为scrollTop值时效果很好,但是当我传递一个变量时,它不喜欢它。有什么想法吗

$(".project a").click(function(event){
    event.preventDefault();
    var full_url = this.href;
    var parts = full_url.split("#");
    var trgt = parts[1];
    var target_offset = $("#"+trgt).offset();   
    var target_top = target_offset.top; //- 90; 

    $('html, body').animate({scrollTop:target_top}, 1000, function() {  
    });
});

修复:确定道歉peeps该函数从一开始就工作正常,但一位同事指出var trgt包含一个设置为显示的元素:css中无,其初衷是在回调时使用slideToggle。。。深深的叹息。为你的回答干杯

尝试使用

parseInt(target_top)
然后再试一次。如果我的建议不起作用,请告诉我


或者阅读以下内容:。查看Andy E的答案。

没有错误,因为它会阻止您在“1000”持续时间内滚动,就好像它实际工作一样。。。真的被难住了:斯密斯说它根本没有开始滚动?它根本没有滚动。但是,如果我用
scrollTop:500
替换
scrollTop:target\u top
,它工作得很好。typeof返回target\u top上的数字,我还是尝试了parseInt,但没有成功。还尝试了Andy将变量指定为对象文字的方法,但再次无效。@SamuelDavidHardy:在Chrome中使用
console.log
查看
target\u top
的值