Javascript 切换固定和静态位置

Javascript 切换固定和静态位置,javascript,jquery,html,css,css-position,Javascript,Jquery,Html,Css,Css Position,我有两个专栏。右栏是一个普通的可滚动内容窗格。左侧的列,classnamesticky就是我试图在固定和静态定位之间切换的列。当您滚动右侧栏直到结束时,它必须在视图中保持固定。当您到达右侧列的末尾(下一部分可见)时,stickydiv的位置必须更改为static,并与页面一起正常滚动。以下部分必须以相同的方式(通常)滚动,直到到达浏览器窗口顶部,此时视图中的当前粘滞div更改为位置固定 HTML: <section> <div class="c-2 sticky">

我有两个专栏。右栏是一个普通的可滚动内容窗格。左侧的列,classname
sticky
就是我试图在固定和静态定位之间切换的列。当您滚动右侧栏直到结束时,它必须在视图中保持固定。当您到达右侧列的末尾(下一部分可见)时,
sticky
div的位置必须更改为static,并与页面一起正常滚动。以下部分必须以相同的方式(通常)滚动,直到到达浏览器窗口顶部,此时视图中的当前
粘滞
div更改为位置固定

HTML:

<section>
    <div class="c-2 sticky"></div> /* Background image */
    <div class="c-2">
        <p>Any volume of content. Must cater for long and short pieces</p>
        ....
    </div>
</section>
JS是我摔倒的地方,我只是不知道如何开始这样做。我试过用,但运气不好。我这里有一个JSFiddle:

您需要在新部分开始的地方放置一个“锚”,然后使用jQuery,您需要查看此元素的位置,然后在确定锚可见后使用jQuery(id).css()选项更改位置

或者另一种选择是跟踪滚动,当左侧的元素需要移动时,使用动画将其移出屏幕

更新

-更改位置属性

-检测滚动

或者-获取锚的位置

然后你加上这个:

jQuery(window).scroll(function(e) {
   //track scrolling
});
您需要在新部分开始的地方放置一个“锚”,然后使用jQuery,您需要查看此元素的位置,然后在确定锚可见后,使用jQuery(id).css()选项更改位置

或者另一种选择是跟踪滚动,当左侧的元素需要移动时,使用动画将其移出屏幕

更新

-更改位置属性

-检测滚动

或者-获取锚的位置

然后你加上这个:

jQuery(window).scroll(function(e) {
   //track scrolling
});

您好,请查看此演示并告诉我这样的东西是否是您想要的,然后我可以对此

做出更好的解释您好,请查看此演示并告诉我这样的东西是否是您想要的,然后我可以对这

概括做出更好的解释像这样的问题是不赞成的。然而,我确实提供了一些想法让你开始,或者至少研究如何让它继续下去…\stackoverflow不赞成这样的泛化。但是,我确实提供了一些想法让您开始,或者至少研究如何开始…\n我理解您的观点,但您能否提供指向您所引用资源的任何链接?我更新了回复。你可以使用这些工具来做你想做的事。我理解你的观点,但是你能提供你提到的资源的链接吗?我更新了回复。你可以用这些工具来做你想做的事。是的,这太棒了,正是我想要的。我似乎无法将它整合到我的网站中,尽管这样一个解释将非常有用。谢谢以上更多信息:左边的一栏不会粘住,页面正常滚动。开发工具不会出现任何错误,也不会显示正在添加/删除的abs或fix类。查看工作代码:有什么想法吗?尝试在函数中添加一个console.log('msj')或在window.scroll函数中跟踪任何变量。使用此功能,我们现在可以找到问题所在,我已经将console.log()代码放在了我的函数中,但在开发工具中仍然没有结果。虽然我不确定我是否正确实现了它,但这就是我所做的:尝试将函数置于js中文档之外的所有内容之外。readyYeah这太棒了,正是我想要的。我似乎无法将它整合到我的网站中,尽管这样一个解释将非常有用。谢谢以上更多信息:左边的一栏不会粘住,页面正常滚动。开发工具不会出现任何错误,也不会显示正在添加/删除的abs或fix类。查看工作代码:有什么想法吗?尝试在函数中添加一个console.log('msj')或在window.scroll函数中跟踪任何变量。使用此功能,我们现在可以找到问题所在,我已经将console.log()代码放在了我的函数中,但在开发工具中仍然没有结果。虽然我不确定是否正确实现了它,但我已经做到了:尝试将函数放在js中document.ready之外的所有内容之外