javascript - jQuery垂直滑动动画不动

标签 javascript jquery html css

我有一个 JQuery 函数,它使导航栏在您垂直滚动时向上或向下滑动。这个想法是始终保持导航栏距离客户端窗口顶部 20 像素。当用户向上或向下滚动时,导航栏会滑动,直到它回到距客户端窗口顶部 20 像素的位置。

我的问题:它只是不会移动,哈哈。我做错了什么?

这是我的带有 JQuery 代码的 JSFiddle:http://jsfiddle.net/wLga8/

这是我的代码:

function moveDistanceEaseIn( /*HTML Element*/ ele, /*int|float*/ dist, /*Function*/ funct )
{
   ele = $(ele);
   var min = dist*0.01;

   // kill an already running animation
   if (ele.data("animInterval"))
      clearInterval(ele.data("animInterval"));

   var step = function()
   {
      if (dist <= min)
      {
         ele.data("animInterval", false);
         clearInterval(interval);
         return;
      }

      var stepMove = dist*0.1;
      dist        -= stepMove;
      funct(ele, dist, stepMove);
   };

   var interval = setInterval(step, 30);
   ele.data("animInterval", interval);
}

function moveToPointEaseIn( /*HTML Element*/ ele, /*int|float*/ curPoint, /*int|float*/ point, /*Function*/ funct, /*bool*/ signed )
{
   ele      = $(ele);
   var dist = (signed == true) ? curPoint - point:Math.abs(curPoint - point);
   moveDistanceEaseIn(ele, dist, funct);
}

$(document).ready(function()
{
   $(window).scroll(function () 
   { 
      var nav = $("#aa");
      moveToPointEaseIn(nav, nav.position().top, $(window).scrollTop()+20, function(ele, dist, stepMove)
      {
         ele.css("top", ele.position().top+stepMove);
      }, true);
   });
});

还有一些 HTML 示例:

<body style="height: 3000px;">
    <div id="aa" style="position: absolute; left: 0px; top: 20px; width: 200px; height: 500px; background-color: red;"></div>
</body>

最佳答案

我不确定为什么您的功能不起作用。 fiddle 未设置为使用 jquery,但即使设置也没有效果。

但是,这似乎可以满足您的需求....

<body style="height: 3000px;">

<div id="aa" style="position: absolute; left: 0px; top: 20px; width: 200px; height: 500px; background-color: red;">

</div>

var $scrollingDiv = $("#aa");
 $(window).scroll(function(){            
    $scrollingDiv.stop().animate({"marginTop": ($(window).scrollTop() + 0) + "px"}, 20 );            
});

DEMO

关于javascript - jQuery垂直滑动动画不动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8685798/

相关文章:

javascript - Vue.js 中的 "focus is not a function"即使元素存在

javascript - Microsoft Edge 不触发 HTML5 音频元数据

javascript - 检测 jQuery 中的拖动取消

html - 谷歌浏览器在移动到另一个页面后不会返回到 UTF-8

java - Primefaces ajax 更新不适用于 <p :column> 内的字段

javascript - 如何从 iframe src 获取哈希值?

javascript - 当用户登录时,如何在passport.authenticate(本地)中返回用户对象?

javascript - 你能为 AJAX 调用添加优先级吗

javascript - JS中如何获取评论的id

html - 引导轮播的视差效果在 Firefox 中不起作用