Javascript设置超时与承诺
我需要在代码中包含承诺类型的操作,但不确定如何更改代码: 密码 问题 问题是,如果我的目标div滚动到很近,那么一切看起来都很好,但是如果我的div在滚动过程完成之前远离当前位置,那么类将从中删除,因此设计看起来不像预期的那么好 我需要的是在滚动完成后移动类的删除代码 逻辑: 添加类并滚动到目标DIV 滚动完成后,从目标DIV中删除该类 有什么想法吗?据我所知,scrollToPoint正在返回承诺 下面这个简单的解决方案怎么样Javascript设置超时与承诺,javascript,angular,typescript,Javascript,Angular,Typescript,我需要在代码中包含承诺类型的操作,但不确定如何更改代码: 密码 问题 问题是,如果我的目标div滚动到很近,那么一切看起来都很好,但是如果我的div在滚动过程完成之前远离当前位置,那么类将从中删除,因此设计看起来不像预期的那么好 我需要的是在滚动完成后移动类的删除代码 逻辑: 添加类并滚动到目标DIV 滚动完成后,从目标DIV中删除该类 有什么想法吗?据我所知,scrollToPoint正在返回承诺 下面这个简单的解决方案怎么样 scrollTo(id) { var scrollDura
scrollTo(id) {
var scrollDuration = 800;
var titleELe = document.getElementById(id);
titleELe.classList.add('active');
this.scrollMeElement.scrollToPoint(0, titleELe.offsetTop, scrollDuration).then(() => {
titleELe.classList.remove('active');
});
};
如果需要异步函数,则还可以添加外部承诺:
scrollTo(id) {
return new Promise((resolve, reject) => {
var scrollDuration = 800;
var titleELe = document.getElementById(id);
titleELe.classList.add('active');
this.scrollMeElement.scrollToPoint(0, titleELe.offsetTop, scrollDuration).then(() => {
titleELe.classList.remove('active');
resolve();
}, () => {
reject();
});
});
};
问题:1。做这个-this.scrollMeElement.scrollToPoint0,titleELe.offsetTop,1000;方法可以采用回调方法吗?2.这个方法会返回什么吗?什么是活动类?@Subhadeep 1。不确定它是angular ViewChild方法@ViewChild'scrollMe',{static:false}scrollMeElement:any;2.不是我们提供的只是获取div数据,在本例中,我向div添加了id,这样它就可以找到特定的数据div@Ifaruki是我添加到div以添加stylesthanks的类名,今晚我将尝试您的代码并让您知道结果。
scrollTo(id) {
return new Promise((resolve, reject) => {
var scrollDuration = 800;
var titleELe = document.getElementById(id);
titleELe.classList.add('active');
this.scrollMeElement.scrollToPoint(0, titleELe.offsetTop, scrollDuration).then(() => {
titleELe.classList.remove('active');
resolve();
}, () => {
reject();
});
});
};