【发布时间】:2017-01-22 07:54:52
【问题描述】:
在我的项目中,我需要在容器可见部分的中心(相对于窗口)显示一个小图像,即.loader。即使用户滚动页面,图像也应该在.loader 的中心可见。
我成功实现了这一点,但现在我面临一个边缘情况,即当用户将页面“向上滚动到页眉”或“向下滚动到页脚”时,小图像被隐藏了。 demo。
这实际上是正常行为,但在这些边缘情况下,我希望图像贴在.loader 容器的顶部/底部。
我想要什么:
- 将小图像始终保持在
.loader容器的中心。 (我已经实现了这个) - 当滚动到
.loader容器的任何一端时,图像应保持在该端,而不是隐藏在容器后面。
首选仅使用 css 的解决方案。我正在寻找 IE9+、chrome 和 firefox 中的浏览器支持。
.header {
height: 600px;
width: 650px;
background-color: grey;
}
.left-side {
height: 300px;
width: 150px;
float: left;
background-color: red;
}
.loader {
background-image: url('http://i.imgur.com/U2njI.jpg');
margin-left: 150px;
height: 1500px;
width: 500px;
background-position: 345px center;
background-repeat: no-repeat;
background-attachment: fixed;
background-color: cornflowerblue;
}
.footer {
height: 600px;
width: 650px;
background-color: silver;
}
<div class="header"></div>
<div class="left-side"></div>
<div class="loader"></div>
<div class="footer"></div>
【问题讨论】:
-
对不起,如果只有我无法理解问题。
-
@C-link 我添加了更多解释。如果您仍然无法理解,请告诉我。
-
你应该使用 jquery!
-
@Mr_Green - 这就是 position:sticky 的好处。请参阅 here 和 here 和(然后)[这里] (jsfiddle.net/danield770/msUP9) - 如果您启用了标志
-
@Danield 感谢您提供这个很酷的信息。我希望这对未来的用户有所帮助。 :) 顺便说一句,随着 chrome 引擎升级为闪烁,该标志现在已更改。 link
标签: javascript html css