当页面位于顶部或某个锚点时,有没有办法不让函数执行?
这是我的功能,只要鼠标滚轮滚动就会运行:
$(document).on('mousewheel DOMMouseScroll', function(MyFunction) {
// some stuff is happening
});
我想添加这两个条件:
<a id="MyAnchor">
MyFunction 仅在我向上滚动时 。甚至可能吗? 如果我不清楚,如果您需要更多解释,请告诉我,谢谢。
答案 0 :(得分:0)
您可以使用scrollTop查看其是否滚动到页面顶部
if($('body').scrollTop() === 0)
Page是在某个锚点吗?它不清楚,你的意思是鼠标指针是否存在,或者项目在视口中是否可见?
在这种情况下,您可以查看
if(window.location.hash === "hash-of-your-div")
$(document).on('mousewheel DOMMouseScroll', function(MyFunction) {
if(window.location.hash === "hash-of-your-div" || $('body').scrollTop() === 0){
return false;
}
//normal code
});
但是如果在没有单击散列锚标记的情况下滚动元素,它将无法工作。
对于这种情况,您必须获取position
元素的scrollTop
和body
的当前{{1}},并查看该项目是否在视口中。或者使用一些插件,我想有很多。
How to tell if a DOM element is visible in the current viewport?
答案 1 :(得分:0)
尝试使用一些标志变量来告诉您的程序该页面是什么。
加载页面时,您可以设置一个类似first=true
的可靠项。然后在向下滚动时将其设置为false,并在页面滚动到顶部时将其设置为true。
与2相同。