gpt4 book ai didi

javascript - 在已经在顶部时检测滚动事件

转载 作者:行者123 更新时间:2023-11-30 06:38:48 24 4
gpt4 key购买 nike

我的页面顶部有一个菜单栏,如果我已经在顶部时向上滚动,我想显示它。想象一下,您向上滚动,当您停留在那里时,您再次向上滚动,该条将显示。

我有这段代码使用 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;
}
}

最佳答案

滚动事件不会触发,因为窗口不再滚动。

您可能需要为鼠标滚轮本身创建自定义事件。

这可能会有帮助:Javascript: Capture mouse wheel event and do not scroll the page?

关于javascript - 在已经在顶部时检测滚动事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12939765/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com