我有一个菜单栏在我的页面顶部,我想显示如果我已经上面滚动了。想象一下,当你向上滚动时,在那里再次向上滚动,酒吧就会显示出来。检测滚动事件,而已经在顶部
我有这样的代码使用jquery
// 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;
}
}