javascript - jQuery 移动元素然后固定它并水平移动它

标签 javascript jquery html css

我正试图在 this site 上实现效果,但我只需要根据滚动来移动一些东西。我的目标是让篮球进入箱子,然后在向下滚动一点后箱子进入卡车并且所有物体都水平地穿过页面。此外,我希望在您向下滚动时发生这种情况,而不是像当前 fiddle 那样在向上滚动时发生。

这是我当前的 Fiddle , 最初基于此 Fiddle .下面是js。

  var fixedElement = false;
  var changingMoment = 150;
$(window).scroll(function() {
// floatingContentMark lets us know where the element shall change from fixed to relative
// and vice versa
 var distanceFromTop = $("#floatingContentMark").offset().top - $(this).scrollTop();    
   if ((distanceFromTop <= changingMoment && !fixedElement) || 
    (distanceFromTop >= changingMoment && fixedElement)) 
     {    // either we came from top or bottom, same function is called
      fixedElement = !fixedElement;
     $('#box').trigger('fixElement');
     }
  });

 $('#box').bind('fixElement', function() {
  if ($(this).css('position') != 'fixed') {
    $(this).css('position', 'fixed') ;
    $(this).css('top', changingMoment) ;
}
else {
    $(this).css('position', 'relative') ;
    $(this).css('top', 'auto') ;
}
}) ;

最佳答案

如果您使用框架或 jQuery 插件进行自定义/视差滚动,我认为您的元素会容易得多。一个快速的谷歌搜索带来了几个可以很容易地做你想做的事情:

要获得一些灵感,请查看列出的页面 here .

关于javascript - jQuery 移动元素然后固定它并水平移动它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20745821/

相关文章:

javascript - knockoutjs 主页面调用组件

html - 浏览器自动为 &lt;input&gt; 元素添加间距,如何删除它们?

javascript - 在 jQuery 中,如何在文本区域聚焦时显示 div,并在文本区域模糊时隐藏它?

javascript - Jquery 根本不工作,但其他 Javascript 代码运行

javascript - 在数组中循环和组合时间范围

php - Facebook风格的多图片上传

javascript - jQuery:使用淡入淡出刷新页面

javascript:使用按钮参数设置 onclick 函数

javascript - 有没有办法在没有默认 div 容器的情况下创建 ExtJS 纯按钮?

javascript - 使非十进制数变为十进制的正则表达式(添加 .00)