Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用鼠标滚轮jquery插件滚动速度_Javascript_Jquery_Scroll_Mousewheel - Fatal编程技术网

Javascript 使用鼠标滚轮jquery插件滚动速度

Javascript 使用鼠标滚轮jquery插件滚动速度,javascript,jquery,scroll,mousewheel,Javascript,Jquery,Scroll,Mousewheel,我想模仿搜索栏的标题。当您向下滚动时,它将转到top:-60px,第二个水平菜单将是top:0,从top:60px,并成为主顶部水平菜单,而带有top:-60px的菜单将保持隐藏状态,直到我们滚动到顶部 我设法做到了这一点,但只有当我慢慢滚动时(使用触摸板、OSX、Chrome33),它才起作用。我研究发现滚动速度取决于硬件(触摸板、鼠标)、操作系统甚至浏览器。我找到了一个插件,它的目的是使滚动速度相等,但我不能让它工作 这是js代码:(我从这里得到的增量分区:) gn_top_menu_fe

我想模仿搜索栏的标题。当您向下滚动时,它将转到
top:-60px
,第二个水平菜单将是
top:0
,从
top:60px
,并成为主顶部水平菜单,而带有
top:-60px
的菜单将保持隐藏状态,直到我们滚动到顶部

我设法做到了这一点,但只有当我慢慢滚动时(使用触摸板、OSX、Chrome33),它才起作用。我研究发现滚动速度取决于硬件(触摸板、鼠标)、操作系统甚至浏览器。我找到了一个插件,它的目的是使滚动速度相等,但我不能让它工作

这是js代码:(我从这里得到的增量分区:)


gn_top_menu_featured=$('.gn top menu featured'),
gn_top_menu=$('.gn top menu'),
隐藏\u gn\u顶部\u菜单\u特色=0,
gn_顶部_菜单_位置=44;
$('body')。在('mousewheel',函数(事件)上{
如果(event.deltaX>=40)
event.deltaX/=40;
如果(event.deltaY>=40)
event.deltaY/=40;
var sy=$('body').scrollTop();

如果(sy>=hide\u gn\u top\u menu\u featured&&sy一开始我误解了你的问题。这里是解决这个问题的另一个尝试。我可能仍然没有正确理解你,因为我仍然不需要控制鼠标滚轮的速度来实现这一点。下面是解决方法

我使用
$(窗口).scroll
事件检查
$(窗口).scrollTop()
值并更改div的css类

$(window).scroll(function(){
    $("#nav").css("top", ($(window).scrollTop() < 60 ? (60 - $(window).scrollTop()) : 0) + 'px');
    if ($(window).scrollTop() > 60) {
        $("#nav").addClass('sub-60').text('WOOT!');
    }
    else {
        $("#nav").removeClass('sub-60').text('MAIN NAV');
    }
});
$(窗口)。滚动(函数(){
$(“#nav”).css(“top”,($(window.scrollTop()<60?(60-$(window.scrollTop()):0)+“px”);
如果($(窗口).scrollTop()>60){
$(“#nav”).addClass('sub-60').text('WOOT!');
}
否则{
$(“#导航”).removeClass('sub-60').text('MAIN nav');
}
});

让我再解释一遍。我的两个顶部水平菜单都是
位置:固定的
。第一个位于
顶部:0
第二个位于
顶部:44
。当用户上下滚动时,两个顶部菜单的
顶部
值将逐个更新。一旦第一个具有
顶部:0
原始值的菜单达到
顶部:-44
和第二个原始值为
top:44
的值达到
top:0
时,计算结果将返回false,DOM操作将完成。直到用户向上滚动。当我滚动太快时,它计算错误。这是因为轨迹板的
增量太大,我无法解决它。
$(window).scroll(function(){
    $("#nav").css("top", ($(window).scrollTop() < 60 ? (60 - $(window).scrollTop()) : 0) + 'px');
    if ($(window).scrollTop() > 60) {
        $("#nav").addClass('sub-60').text('WOOT!');
    }
    else {
        $("#nav").removeClass('sub-60').text('MAIN NAV');
    }
});