Javascript 已在顶部时检测滚动事件
我有一个菜单栏在我的页面顶部,我想显示如果我向上滚动,而已经在顶部。想象一下你向上滚动,当你在那里移动时,你再次向上滚动,这个条就会显示出来 我使用jquery编写了这段代码Javascript 已在顶部时检测滚动事件,javascript,scroll,jquery,scrolltop,Javascript,Scroll,Jquery,Scrolltop,我有一个菜单栏在我的页面顶部,我想显示如果我向上滚动,而已经在顶部。想象一下你向上滚动,当你在那里移动时,你再次向上滚动,这个条就会显示出来 我使用jquery编写了这段代码 // listen for the scroll to show the top menu var was_on_top = false; $(function () { $(window).bind("scroll", function (e) { if ($(window).scrollTop
// listen for the scroll to show the top menu
var was_on_top = false;
$(function () {
$(window).bind("scroll", function (e) {
if ($(window).scrollTop() == 0) {
if ($('.menu').css('display') == "none" && was_on_top) {
$('.menu').slideDown();
} else {
was_on_top = true;
}
} else {
was_on_top = false;
}
});
});
但是滚动事件在已经在顶部时不会触发。有什么想法吗
编辑:下面是工作代码。在FF、Chrome和IE9上测试
// listen for the scroll to show the top menu
var was_on_top = false;
$(function () {
if (window.addEventListener) {
window.addEventListener('DOMMouseScroll', onMouseWheelSpin, false); // FireFox
window.addEventListener('mousewheel', onMouseWheelSpin, false); // Chrome
} else {
window.onmousewheel = onMouseWheelSpin;
}
});
function onMouseWheelSpin(event) {
if (!event) // IE sucks
event = window.event;
if ($(window).scrollTop() == 0 &&
(
event.detail < 0 // Firefox
||
(event.wheelDelta && (
(window.opera && event.wheelDelta < 0) // Opera
||
event.wheelDelta > 0 // IE
)
)
)
) {
if ($('.menu').css('display') == "none" && was_on_top) {
$('.menu').slideDown();
} else {
was_on_top = true;
}
} else {
was_on_top = false;
}
}
//听滚动条以显示顶部菜单
var在顶部=false;
$(函数(){
if(window.addEventListener){
addEventListener('DOMMouseScroll',onMouseWheelSpin,false);//FireFox
window.addEventListener('mousewheel',onMouseWheelSpin,false);//Chrome
}否则{
window.onmouseheel=onmouseheelspin;
}
});
MouseWheelSpin功能(事件){
如果(!event)//IE糟透了
event=window.event;
如果($(窗口).scrollTop()==0&&
(
event.detail<0//Firefox
||
(event.wheelDelta和(
(window.opera&&event.wheeldta<0)//opera
||
event.wheelDelta>0//IE
)
)
)
) {
if($('.menu').css('display')==“none”&&was在顶部){
$('.menu').slideDown();
}否则{
was_on_top=真;
}
}否则{
was_on_top=false;
}
}
滚动事件不会触发,因为窗口不再滚动
您可能需要为鼠标滚轮本身创建自定义事件
这可能会有帮助: