设置一个标志就足以处理动画的发生。
首先,将您的CSS更改为 overflow-y: scroll;
如下所示
#div-scrollable {
width: 500px;
max-height: 300px;
overflow-y: scroll;
border: 1px solid gray;
}
然后,使用以下脚本
flag = true;
$('#div-scrollable').scroll(function () {
var DistanceFromBottom = Math.floor($("#div-scrollable")[0].scrollTop - ($("#div-scrollable")[0].scrollHeight - $("#div-scrollable").height()));
if(-1 <= DistanceFromBottom && DistanceFromBottom <= 1 && flag){
flag = false;
}
if(flag) new Vivus(document.querySelector('svg'),{duration: 50});
});
我在你的 jsfiddle 上工作并测试了它,它应该可以工作。让我知道是否还有任何问题。