Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在可滚动div中为目标元素设置滚动位置动画?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何在可滚动div中为目标元素设置滚动位置动画?

Javascript 如何在可滚动div中为目标元素设置滚动位置动画?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,如何在可滚动的dviv中滚动到多个锚点?。我的代码工作不正常。当我引用html和body元素时,我检查它是否工作正常 $(文档).ready(函数(){ $('.btnpins a')。单击(函数(e){ e、 预防默认值(); $('.results').stop().animate({ scrollTop:$($(this.attr('href')).offset().top-60 }, 400); 返回false; }); }); 。结果{ 宽度:300px; 高度:500px; 边缘顶

如何在可滚动的dviv中滚动到多个锚点?。我的代码工作不正常。当我引用
html
body
元素时,我检查它是否工作正常

$(文档).ready(函数(){
$('.btnpins a')。单击(函数(e){
e、 预防默认值();
$('.results').stop().animate({
scrollTop:$($(this.attr('href')).offset().top-60
}, 400);
返回false;
});
});
。结果{
宽度:300px;
高度:500px;
边缘顶部:20px;
溢出y:滚动;
}

结果1
知识产权是一种权利,是一种精英的权利,是劳动和财富的暂时性权利。但是,在最低限度上,我们需要一个实验室来进行日常工作。酒后驾车
这是一种不受欢迎的行为,它是一种不受欢迎的行为。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡


结果2 知识产权是一种权利,是一种精英的权利,是劳动和财富的暂时性权利。但是,在最低限度上,我们需要一个实验室来进行日常工作。酒后驾车 这是一种不受欢迎的行为,它是一种不受欢迎的行为。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡


结果3 知识产权是一种权利,是一种精英的权利,是劳动和财富的暂时性权利。但是,在最低限度上,我们需要一个实验室来进行日常工作。酒后驾车 这是一种不受欢迎的行为,它是一种不受欢迎的行为。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡


结果4 知识产权是一种权利,是一种精英的权利,是劳动和财富的暂时性权利。但是,在最低限度上,我们需要一个实验室来进行日常工作。酒后驾车 这是一种不受欢迎的行为,它是一种不受欢迎的行为。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡



问题是因为
offset()
返回元素相对于
文档的位置,而不是父容器,因此当
的滚动位置不在顶部时,返回的值被抛出

要解决此问题,您需要在位置计算中考虑
结果的
偏移量()
滚动顶部()
。试试这个:

jQuery($=>{
$('.btnpins a')。单击(函数(e){
e、 预防默认值();
让$results=$('.results');
让$target=$($(this.attr('href'));
$results.stop().animate({
scrollTop:$target.offset().top-$results.offset().top+$results.scrollTop()
}, 400);
});
});
。结果{
宽度:300px;
高度:500px;
边缘顶部:20px;
溢出y:滚动;
位置:相对位置;
}

结果1
知识产权是一种权利,是一种精英的权利,是劳动和财富的暂时性权利。但是,在最低限度上,我们需要一个实验室来进行日常工作。酒后驾车
这是一种不受欢迎的行为,它是一种不受欢迎的行为。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡


结果2 知识产权是一种权利,是一种精英的权利,是劳动和财富的暂时性权利。但是,在最低限度上,我们需要一个实验室来进行日常工作。酒后驾车 这是一种不受欢迎的行为,它是一种不受欢迎的行为。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡


结果3 知识产权是一种权利,是一种精英的权利,是劳动和财富的暂时性权利。但是,在最低限度上,我们需要一个实验室来进行日常工作。酒后驾车 这是一种不受欢迎的行为,它是一种不受欢迎的行为。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡


结果4 知识产权是一种权利,是一种精英的权利,是劳动和财富的暂时性权利。但是,在最低限度上,我们需要一个实验室来进行日常工作。酒后驾车 这是一种不受欢迎的行为,它是一种不受欢迎的行为。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡



您应该相对于父容器滚动,在您的情况下,父容器是
。结果
。使用
$('.results').scrollTop()
获取容器位置并将其添加到
scrollTop
位置计算中

$('.results').stop().animate({
  scrollTop: $('.results').scrollTop() + $($(this).attr('href')).offset().top - 60
}, 400);
$(文档).ready(函数(){
$('.btnpins a')。单击(函数(e){
e、 预防默认值();
$('.results').stop().animate({
scrollTop:$('.results').scrollTop()+$($(this.attr('href')).offset().top-60
}, 400);
返回false;
});
});