Javascript 使用“滚动行为:平滑”时检测滚动何时完成`

Javascript 使用“滚动行为:平滑”时检测滚动何时完成`,javascript,css,Javascript,Css,当滚动到页面上的某个元素时,最好的检测方法是什么?该规范说,“滚动框在用户代理定义的时间段内使用用户代理定义的计时功能以平滑方式滚动。用户代理应遵循平台约定(如果有)。” (2017-11-23)在一个相关的注释中,也许我不理解这个问题,但为什么不直接检测滚动到的元素何时到达相对于视口顶部的最终位置 var scrollElem = document.querySelector('.scroll-me'), offsetTop = 300; window.addEventListen

当滚动到页面上的某个元素时,最好的检测方法是什么?该规范说,“滚动框在用户代理定义的时间段内使用用户代理定义的计时功能以平滑方式滚动。用户代理应遵循平台约定(如果有)。”



(2017-11-23)在一个相关的注释中,

也许我不理解这个问题,但为什么不直接检测滚动到的元素何时到达相对于视口顶部的最终位置

var scrollElem = document.querySelector('.scroll-me'),
    offsetTop = 300;

window.addEventListener('scroll', checkScroll);
document.addEventListener("DOMContentLoaded", checkScroll)

function checkScroll() {
    var viewportOffset = scrollElem.getBoundingClientRect(),
        distanceToTop = viewportOffset.top;

    if (distanceToTop <= offsetTop) {
        callback();
    }
}
var scrolleem=document.querySelector('.scroll me'),
偏移量=300;
window.addEventListener('scroll',checkScroll);
document.addEventListener(“DOMContentLoaded”,复选框)
函数checkScroll(){
var viewportOffset=scrollem.getBoundingClientRect(),
distanceToTop=视口offset.top;

如果(distanceToTop唯一可行的选择似乎是等待,直到不再出现任何
滚动
事件:

let timer;
window.addEventListener( 'scroll', () => {
    clearTimeout( timer );

    timer = setTimeout( () => {
        callback();
    }, 300 );
}, { passive: true } );
使用函数作为包装器

“严格使用”;
var计数=0;
//[trigger]锚应在scrollend上触发侦听
document.addEventListener('click',e=>{
if(例如target.matches('a[trigger]')){
//只听一次CustomEvent“滚动”
window.addEventListener('scrollend',函数(e){
log('滚动已完成',++count)
}, {
一次:对
})
}
});
{
//创建scrollend事件
常量选项={
被动:对
}
常数scrollEnd=debounce(e=>{
e、 target.dispatchEvent(新的CustomEvent('scrollend'){
泡泡:真的
}))
}, 100)
window.addEventListener(“滚动”,滚动结束,选项)
}
//简单去盎司
函数解盎司(回调,等待){
var超时;
返回函数(e){
clearTimeout(超时);
超时=设置超时(()=>{
撤回(e);
},等等);
}
}
html{
滚动行为:平滑;
}
章节:目标{
背景颜色:浅灰色;
}
div{
溢出:自动;
高度:40px;
}
#托普{
位置:固定;
右:10px;
底部:50px;
填充:10px;
背景色:rgba(255、155、255、0.9);
}

Lorem,ipsum dolor。 知识本身是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德 请解释一下,我的意思

自然的进化是一种进化,它是一种进化的进化,它的进化发生在同一个物种的进化过程中,它是一种进化的进化过程 不受惩罚的人。奥特姆,大盲肠

Omnis,坐吧,自由人! 除此之外,还可以使用类似于牙周炎患者的验光仪。根据验光仪、验光仪、验光仪、验光仪、验光仪、验光仪、验光仪、验光仪、验光仪、验光仪、验光仪、验光仪、验光仪、验光仪、验光仪、验光仪 他是一个有能力的人

我们必须解释清楚,在非宗教信仰的情况下,建筑设计师的责任是什么,在宗教信仰中,自由的尊严是什么 你是个发明家吗

真实的,非普通的。 我们的发明者是一个无名小卒,我们的发明者是一个无名小卒,一个无名小卒,一个无名小卒,一个无名小卒,一个无名小卒,一个无名小卒,一个无名小卒 快去看看你的眼睛!伊莎姆

在多尔·奎斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登斯·普罗维登 你在一个水平的地方

是的,多洛里巴斯?奎亚。 在过去的十年里,我们一直在不断地积累经验,不断地积累经验,不断地积累经验,不断地积累经验,不断地积累经验,不断地积累经验,不断地积累经验,不断地积累经验 你的工作是什么

我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们 时间上的极小值,可以解释为发明家内克的腐败

Ducimus,暂时的omnis? 以下是一份报告,该报告的主要内容是:对犯罪嫌疑人的指控、对犯罪嫌疑人的指控、对犯罪嫌疑人的指控、对犯罪嫌疑人的指控、对犯罪嫌疑人的指控、对犯罪嫌疑人的指控、对犯罪嫌疑人的指控、对犯罪嫌疑人的指控、对犯罪嫌疑人的指控、对犯罪嫌疑人的指控、对犯罪嫌疑人的指控、对犯罪嫌疑人的指控和对犯罪嫌疑人的指控 时间错误,认为是罪过的尊严,例如

腐败的自然是一种全方位的腐败,是一种无益的腐败,是一种无益的腐败 阿苏门达-奎

Quo,expedita omnis。 因暂时过失而导致的犯罪分子、多洛里布、共同犯罪行为、非强制性消费行为的持续性犯罪。如果有权利,则不必再追究责任发明人的责任 这是一个合理的自由权利

诺斯图姆托塔姆·多洛雷·内克·尤斯托作坊?