Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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 - Fatal编程技术网

Javascript 使用jquery通过鼠标和浏览器添加类制作滚动

Javascript 使用jquery通过鼠标和浏览器添加类制作滚动,javascript,jquery,Javascript,Jquery,您好,我需要一个问题的帮助,我有一个固定的菜单,在捕获坐标时会固定,当我用鼠标滚动或直接在浏览器上滚动时,菜单出现粘性,我想添加一个类,但如果在菜单上单击make,我想删除该类,这是我的代码: $(document).on('scroll', Amargin); function Amargin(e) { if ($('nav').hasClass('fixed_menu')) { $('main').addClass('margin'); } else {

您好,我需要一个问题的帮助,我有一个固定的菜单,在捕获坐标时会固定,当我用鼠标滚动或直接在浏览器上滚动时,菜单出现粘性,我想添加一个类,但如果在菜单上单击make,我想删除该类,这是我的代码:

$(document).on('scroll', Amargin);

function Amargin(e) {

  if ($('nav').hasClass('fixed_menu')) {
    $('main').addClass('margin');
  }
  else
  {
    $('main').removeClass('margin');
  }

  e.preventDefault();
}

此外,我还在标签导航中添加了一个类,该类调用fixed_菜单,使菜单的位置固定,这就是我使用if语句的原因,因为我只想在出现class fixed_菜单时添加类边距,当我使用鼠标或浏览器滚动时,但当我单击菜单时,我想删除它,请记住,当我单击粘性菜单时,它会移动捕获scrollTop和offset.Top事件,生成动画页面。

这似乎是一个很酷的想法,所以我想尝试一下。我想你在找类似的东西

你的逻辑错了。其基本思想是,如果顶部有一个导航栏,则当用户滚动经过顶部的导航栏时,您希望显示一个新的导航栏并将其粘贴到屏幕顶部。因此,您需要检查用户在文档顶部的位置是否大于导航栏的高度

var top = $('body').scrollTop();
var navHeight = $('#navBar').height();

if(top > navHeight) {
    $('#fixedBar').fadeIn();
} else {
    $('#fixedBar').fadeOut();
}

我可以让它更加动态,这样就不需要第二个导航栏,但对于这个例子,我相信这种方法是有效的

除了移动preventDefault()并根据您的jQuery版本可能停止ImmediatePropagation之外,您能描述一下您从当前代码中得到的结果吗?谢谢您的帮助,但这不是我要问的。@rob286总体思路是正确的,对吗?我们的方法有点不同?