Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery修复了滚动时的div_Javascript_Jquery_Css_Html - Fatal编程技术网

Javascript jquery修复了滚动时的div

Javascript jquery修复了滚动时的div,javascript,jquery,css,html,Javascript,Jquery,Css,Html,我在网页的最右侧有一个div(右侧),它位于另一个div(顶部横幅)的正下方。即使用户向下滚动,TopBanner div仍保持其在屏幕顶部的确切位置。正是我想要的。但我也希望右边的div(在TopBanner下面)保持在原来的位置,即使用户向下滚动 我已经做到了80%左右,但它的表现很奇怪。当您开始向下滚动时,右侧开始向上移动页面,直到它开始被TopBanner遮挡(位于其后面),然后突然向下弹出到其固定位置,并在剩余的滚动过程中保持不变。下面是执行“弹出式返回”的jquery: 在页面弹出到

我在网页的最右侧有一个div(右侧),它位于另一个div(顶部横幅)的正下方。即使用户向下滚动,TopBanner div仍保持其在屏幕顶部的确切位置。正是我想要的。但我也希望右边的div(在TopBanner下面)保持在原来的位置,即使用户向下滚动

我已经做到了80%左右,但它的表现很奇怪。当您开始向下滚动时,右侧开始向上移动页面,直到它开始被TopBanner遮挡(位于其后面),然后突然向下弹出到其固定位置,并在剩余的滚动过程中保持不变。下面是执行“弹出式返回”的jquery:

在页面弹出到正确位置之前,页面右侧向上移动100像素左右的初始行为让我的老板和我们的用户发疯。我曾尝试过将“top:'0px'”更改为各种值,但这只会让事情变得更糟

在我看来,“重新锚定”右侧的jquery直到我滚动了大约100个像素后才被调用,然后它突然向下移动div,并将其保持在正确的位置

小结:我从不希望右侧向上或向下移动,即使在用户拖动垂直滚动条(滚动)时也是如此


如何做到这一点?(我真的不想使用iframe)谢谢。

把这两个div打包成一个固定位置的怎么样?像这样的

<div id="StickToTop">
  <div id="TopBanner">
  ...
  </div>
  ...
  <div id="RightSide">
  ...
  </div>
</div>

快速预览:

您能发布代码的其余部分吗?这样我们就可以看到这一点了?布朗尼指出,如果它在JSFIDLE或JSbin中:)我愿意,但有大量的代码,其中大部分都没有用处。我已经发布了有用的信息。你特别想要什么?我可以发布一些屏幕/滚动行为的视频剪辑,但不知道是否有用。右边的div只是一个典型的div,里面有一些html。我只是想确保我正确理解了你的问题。我想你想要达到类似的效果(但是右边已经折叠起来,在导航栏下面而不是旁边)(点击右边的黑色标签,在这个场景中显示
右边的
)Deryck,你完全正确。不管发生什么,右边的div都会保持固定,这就是我要找的。当你向下滚动时,顶部的横幅会出现在右侧div的顶部,此时它与我的场景几乎相同。除了我的顶部横幅总是覆盖在我的右侧横幅的顶部。我想事实上,我右边的旗帜的顶部被上面的旗帜覆盖着,而不仅仅是在它下面,这可能会引起我的悲伤。一些z-索引正在覆盖它。好吧,那个网站是我的,虽然右边标签的代码是我一生中最烦人的从头开始的项目,但一旦你插入了数字,它实际上非常简单。在我很快完成一些事情后,我会把你需要的东西贴在这里(除非有人打败我,在这种情况下,你需要更多:)。看起来很合理,但存在一个很大的缺陷。这里的观点:如果你想知道为什么我没有投反对票,那是因为实际上有一个CSS属性可以很容易地消除这个问题。不幸的是没有IE支持(11除外)。这意味着您需要创建一个定制的事件捕获传递处理程序(点击,忽略它,然后在下面传递它),我想这将是非常困难的。伙计们,我查看了两个JSFIDLE示例,但我看不出它们试图实现什么。我看不到滚动和固定元素。如果有人能建议对我现有的jquery代码进行jquery调整来解决这个问题,那就太棒了。Deryck,你的意思是这样的吗?它似乎工作得很好,但我不确定是否所有浏览器都喜欢零宽度div。对提问者来说,这是一个非常有趣的问题:我只是认为重建html/css只能让你在相对位置上使用js进行操作,而不是固定的。我想这会容易些。
<div id="StickToTop">
  <div id="TopBanner">
  ...
  </div>
  ...
  <div id="RightSide">
  ...
  </div>
</div>
#StickToTop {
  position: fixed;
  top: 0px;
}
#TopBanner {
  float: left;
  ...
}
#RightSide {
  float: right;
  ...
}