我在解决Javascript动画滚动问题时遇到了一些麻烦。
我正在使用SuperScrollorama Jquery插件,该插件构建在Greensock JS补间库的顶部。
我所追求的基本效果是“缩小”一个部分,然后使用垂直滚动来扩展一些内容,然后在内容完全展开后“取消固定”该部分,这样用户就可以滚动 - 即{ {3}}
但是当我尝试将相同的效果一个接一个地应用于多个部分时,一切都被破坏了:固定元素下面的“未固定”内容被推离屏幕,它似乎错误地计算了元素的高度反向执行动画(即向上滚动页面)。 - 即http://blueribbondesign.com.au/example/
我一直无休止地摆弄“position:fixed”和“pin-spacer”div,并尝试将Superscrollorama插件附加到各种包含元素,但仍然无法弄清楚如何让它工作。
非常感谢来自网络精彩人群的任何帮助,
干杯,
TN。
答案 0 :(得分:4)
我自己一直在处理这个问题。发生的事情是在插入的部分上方有一个空白的div spacer,其高度已经在pin()函数中定义。其次,固定元素获得一个位置:固定分配给它。这两件事都允许滚动条在元素保持粘贴的同时继续向下滚动。反过来,由于间隔div的高度,在该部分下面的任何东西都会被撞倒。
如果你的固定元素水平居中,首先给它一个左:50%,margin-left: - {width / 2} px来修复它从推到左边缘。
接下来,您必须检测pin / unpin事件(插件提供的参数作为“anim”的附加参数),并更改下面的部分以切换固定/相对位置。当您将基础部分更改为固定位置时,请务必将其“顶部”属性设置为固定元素的高度。固定元件取消固定后,将其更改回相对位置。这有什么意义吗?
似乎不同的技术会要求不同的修复,但那些东西是我要注意的......固定定位,然后使用pin / unpin事件进行调整。