沿父div高度跟踪的浮动div内容

我正在寻找一个HTML5 / jquery解决方案来附加一个浮动div(让我们称之为“A”)到父div的右侧(称为“B”)并让div A在滚动期间停留在屏幕上但在停止时停止它击中了div B高度的顶部或底部。 如果您已经看到浮动/绝对定位的社交媒体按钮保留在屏幕上(它是正确的概念),但我想限制浮动仅与div B的高度一样高或低。

以下是我制作概念动画的概念动画

如果你看看div B,我的目标是让浮动菜单在屏幕上上下滚动div B的高度,而不是在div B的上方或下方。

我们非常欢迎任何建议/帮助/代码剪辑。 先感谢您。

好的,这是我实现的脚本。 我一直想将它变成插件,但我一直忘记这样做,但它很容易定制。

$(window).scroll(function () { var ntMin = 130; var newTop = $(window).scrollTop(); if (newTop <= ntMin){ newTop = ntMin; } $("#navPane").stop() .animate({'top': newTop}, "slow"); }); 

所以这里发生的是你正在为WINDOW OBJECT添加一个事件处理程序(为什么?因为这样如果有人在页面完全加载之前开始滚动,移动div将在页面完成时赶上,因此动画将保持平滑并且那里不会有任何造型故障)。 然后,您将声明一个变量ntMin ,您将其设置为您希望移动div移动到的最小距离值(从窗口顶部开始测量)。 接下来,您将声明一个变量newTop ,并在页面上的当前滚动位置初始化它。 接下来,检查窗口是否移动到足以要求div移动。 然后你执行动画。

我会尽快给你发送演示。 我将试着看看我是否可以先发送一个html版本。

如果您有任何疑问,请告诉我。

编辑:

好吧,我只是将页面保存为htm页面,用Lorem Ipsum替换了内容,并将结果添加到我的新开发站点上的页面(它并非完全完整 - 提前道歉),而不仅仅是向您发送演示。 )。 这是演示的链接 。

出于某种原因,我似乎有一些权限问题阻止我的徽标出现在网站上(网站不是完全哈哈),并且它导致一个小故障,因为导航开始低于它应该,但作为移动页面后,它应立即返回到正确的位置。 同样的错误导致它结束的程度也低于它应该的结果,但是,作为一个整体,它仍然起到了它的作用。 如果您有任何问题和好运,请告诉我! 🙂

更新:我没有机会为你创建插件,但我写了你需要的规格。 请注意,我给你的规格不一定产生最简单的解决方案 - 这是故意的。 我以这样的方式设计它们,您可以轻松编写脚本,测试它,并自定义/扩展它,以便在将其转换为插件之前添加所需的任何其他function。 他们来了:

  • (I)制作一个变量来保持滑动元件的当前(将是前一个)位置
    • 每当窗口滚动时,该值将在代码结束时更新
    • 此值将用于帮助确定滚动方向
  • (II)创建一个管理滑动元素的CSS变化的function
    • 将从窗口滚动处理程序调用此函数
    • 这个函数将采用一系列值{scrollTop,direction,topStop,bottomStop,ele}
      • ele将是滑动元素的选择器
      • 可能想要设计一个可以重用的对象来保存这些值
      • 可以采用这些值和滚动函数中创建的局部变量
        • 可以防止某些function被多次执行
        • 从长远来看可以让事情变得更容易
      • object将存储在document.ready处理程序中的变量中
    • 函数将决定是否移动元素
      • 如果元素的方向是“向下”并且尚未到达(bottomStop - ele.height())移动
      • 如果它已到达bottomStop然后不移动(使用ele.css(顶部:scrollTop))
      • 还必须检查以确保ele.css(“top”)是> topStop
    • 向上反转上行方向
  • (三)创建窗口滚动function:
    • 创建局部变量以保存scrollTop的值
    • 创建局部变量以保存布尔方向值
    • 将scrollTop的值与滑动元素的先前位置进行比较
      • 如果值scrollTop更大,则将方向设置为指示“向下”的布尔值
      • 否则,将方向设置为指示“向上”方向的布尔值
    • 调用II中创建的函数