jQuery – DIV通过滚动运动和粘贴位置移动到窗口的顶部和底部
可能已经有一个jQuery插件可以实现这一点,但我找不到一个完全按照我所做的去做。 如果有的话,请指教我,谢谢。
我的问题是我有很长的页面内容,当您在页面底部滚动时,我的侧边栏不可见。
因此,当您向上和向下滚动页面时,我想让我的#sidebar div保持在浏览器窗口的顶部和底部。
我的侧边栏高度比典型的屏幕分辨率长,所以我需要侧边栏的底部粘在浏览器窗口的底部以及浏览器的顶部。
因此,当您开始向下滚动时,侧栏会像平常一样滚动,但是当您到达侧栏的末端时,它会粘住并且不会滚动,当您开始向上滚动时,侧边栏将会跟随,直到侧边栏的顶部到达浏览器,然后它坚持。 反之亦然。
这可能吗?
我创建了一个简单的设计布局的jsfiddle ,它是核心。 我在边栏上添加了一个虚线边框,所以你现在应该选择侧边栏。
http://jsfiddle.net/motocomdigital/7ey9g/5/
任何建议,或者你知道在线教程或演示,都会非常棒!
UPDATE
请看@Darek Rossman的这个尝试
http://jsfiddle.net/dKDJz/4/
他有基本的想法。 但向上滚动会使其突然移动到顶部。 我需要使用向上/向下滚动的侧边栏来保持流畅。 但坚持窗户的顶部或底部。 当页眉/页脚在视口中时,它也不应固定定位,因此它不会叠加。
谢谢
请看这里的小提琴: http : //jsfiddle.net/dKDJz/2/
基本上,您只需要观察滚动事件,一旦窗口的滚动偏移量大于侧边栏的顶部,它就会向侧边栏添加一个固定的类,并在其向上滚动时删除。
这是根据CSS-Tricks发布的解决方案改编的
我用我的解决方案更新了jsfiddle http://jsfiddle.net/7ey9g/76/ 。
当窗口大于侧边栏时,侧边栏应保持在顶部,当侧边栏较大时,侧边栏应固定在底部。
你不需要任何jQuery或javascript。 所有这一切都可以在CSS中实现, position: fixed
。
将侧边栏选择器更改为以下内容
#sidebar { width: 130px; height: auto; overflow: hidden; background: #ffffff; margin: 0 auto; clear: right; padding: 8px; background: #e5e5e5; border: 2px dashed red; position: fixed; right: 35px; }
这可能会有所帮助
http://andrewhenderson.me/tutorial/jquery-sticky-sidebar/
http://designwoop.com/2011/09/tutorial-creating-a-sticky-sidebar-using-jquery/
不幸的是我没有足够的代表来简单地评论这个链接,所以在这里你去:
http://www.derekallard.com/blog/post/conditionally-sticky-sidebar
它已经有几年了,但根据屏幕截图,它似乎完全涵盖了您的需求。
试试这里http://jsfiddle.net/dKDJz/8/
我已经删除了相当多的代码。
我所做的就是当你向下滚动它到达侧边栏的顶部时,它会粘在窗户的顶部。 滚动回到顶部后,无论标题有多高,它都会在符合标题时解开。
我玩过Derek正在做的事情,我已经完成了你最初要求的顶部和底部。
我根据自己的需要编辑了一些css,我相信你可以把旧东西放在那里并复制脚本。
/ * NewEdit * /
我已经取代了我所做的事情。 我想出了这个:
http://jsfiddle.net/stillb4llin/dKDJz/47/
/ * EndEdit * /