Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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
如何使用JQuery在div上链接动画_Jquery_Html_Css_Jquery Animate - Fatal编程技术网

如何使用JQuery在div上链接动画

如何使用JQuery在div上链接动画,jquery,html,css,jquery-animate,Jquery,Html,Css,Jquery Animate,我有一个具有固定高度的div元素,它包含其他元素。用户可以滚动该分区。我希望用户能够单击按钮并转到可滚动分区内的特定元素。到目前为止,我的代码将滚动条的位置重置为0(如果不在顶部)。但是,在此状态下,不会触发从按钮单击移动到元素的动画。如果已经在顶部,动画将转到所需位置 我的代码: $(document).on('click', '#scrollTo', function() { scrollToElement('#goto377', 1000); }); function scrollT

我有一个具有固定高度的div元素,它包含其他元素。用户可以滚动该分区。我希望用户能够单击按钮并转到可滚动分区内的特定元素。到目前为止,我的代码将滚动条的位置重置为0(如果不在顶部)。但是,在此状态下,不会触发从按钮单击移动到元素的动画。如果已经在顶部,动画将转到所需位置

我的代码:

$(document).on('click', '#scrollTo', function() {
  scrollToElement('#goto377', 1000);
});

function scrollToElement(selector, time, verticalOffset) {
  if($('#scolly-div').scrollTop() != 0) {
    $('#scrolly-div').animate({ scrollTop: 0 }, 1);
  }

  time = typeof(time) != 'undefined' ? time : 1000;
  verticalOffset = typeof(verticalOffset) != 'undefined' ? verticalOffset : 0;
  element = $(selector);
  offset = element.offset();
  offsetTop = offset.top + verticalOffset;
  $('#scrolly-div').animate({ scrollTop: offsetTop}, time);
}

如何使这两个动画都工作?

尝试更改$('scrolly div')。设置动画({scrollTop:offsetTop},time);对$('#scrolly div').animate({scrollTop:0},1)进行动画({scrollTop:offsetTop},time);我试过这个,但不起作用。它只执行第一个动画如果$('#scolly div')。scrollTop()==0,它执行另一个动画,还是什么都不执行。此外,当您调试它时,它是否会为“offsetTop”提供预期的局部变量