Javascript 如何区分滚动到视图中的元素与自动滚动到视图中的元素

Javascript 如何区分滚动到视图中的元素与自动滚动到视图中的元素,javascript,jquery,Javascript,Jquery,我目前正在使用以下JavaScript函数检测元素是否滚动到视图中: function isScrolledIntoView(elem) { var docViewTop = $(window).scrollTop(); var docViewBottom = docViewTop + $(window).height(); var elemTop = $(elem).offset().top; return ((elemTop <= docViewBott

我目前正在使用以下JavaScript函数检测元素是否滚动到视图中:

function isScrolledIntoView(elem) {
    var docViewTop = $(window).scrollTop();
    var docViewBottom = docViewTop + $(window).height();
    var elemTop = $(elem).offset().top;
    return ((elemTop <= docViewBottom) && (elemTop >= docViewTop));
}
函数是crolledintoview(elem){
var docViewTop=$(window.scrollTop();
var docViewBottom=docViewTop+$(window).height();
var elemTop=$(elem).offset().top;
返回((elemTop=docViewTop));
}
现在,我需要区分这个元素是在页面加载时自动滚动(例如,通过#锚定标记)还是手动滚动到视图中


做这件事的好方法是什么?

单击锚点时,URL哈希会发生变化。您可以使用来检测:

window.onhashchange = function() {
    console.log(window.location.hash);
}

是的,但此解决方案在我的情况下不起作用,因为所有URL都将#作为URL的一部分。这就是最终对我起作用的原因: