【问题标题】:Background scrolls while content is fixed内容固定时背景滚动
【发布时间】:2020-11-05 10:20:52
【问题描述】:

我正在使用 vue.js 和 Bootstrap 制作网站保持一些元素静止。我将举一个例子,因为我知道这在这一点上仍然令人困惑。

演示

This is a demo of just the jumbotron在jumbotron旁边的页面上会有其他内容我想要的是别克标志(我也会有其他标志)在其他内容后面的背景中滚动一小会直到主滚动页面的动作接管。我希望我现在正在寻找什么是清楚的。如果您需要更多信息,我很乐意提供。

为了清楚起见,这些图片只是显示 jumbotron 而不是整个页面。固定位置也不能解决我的问题,因为我希望固定元素保留在 jumbotron 中。

【问题讨论】:

  • 至少对我来说还不是很清楚你想要完成什么。也许你可以在例如快速绘图画出起始状态、中间状态和结束状态,解释应该发生什么,并将它们添加到问题中。
  • @Sumurai8 我添加了一些图片让我知道这是否有助于您了解我想要实现的目标
  • 所以你想让一些文本保持在屏幕上的固定位置,直到 jumbotron 离开屏幕,此时固定文本应该随着 jumbotron 滚动离开屏幕?

标签: javascript html css twitter-bootstrap vue.js


【解决方案1】:

如果我解决了问题,这应该可以解决问题:https://codesandbox.io/embed/serene-rhodes-42224?fontsize=14&hidenavigation=1&theme=dark

简要说明做了什么:

  1. 使文本和徽标包装器直接成为滚动容器的子级。在您的情况下,它是 .jumbotron,它只有一个直接子级 - 本地 jumbotron .container。因此,我将滚动行为设置在 .wrapper div 而不是 .jumbotron 上。
  2. 在文本包装器上设置置顶位置。这将为我们提供所需的行为:粘在父窗口的顶部(或任何设置的边框),并在主窗口滚动时随之滚动。
  3. 使用绝对位置为徽标包装器设置高度,这基本上控制了用户在徽标出现之前必须滚动 jumbotron 的时间。

【讨论】:

  • 感谢您理解我想要的。让我将它集成到我的网站中,我会立即接受您的回答。
  • 只是一个简单的问题,我一直在使用高度属性,我无法让徽标从我想要的 jumbotron 的顶部向后滚动
  • 如果您正在谈论以下事件:向上滚动 -> 徽标到顶部 -> 继续滚动 -> 主窗口向上滚动 -> 向下滚动 -> 主窗口向下滚动 -> 继续滚动 ->徽标没有向下移动,然后它链接到 jumbotron 容器在主窗口完成滚动后没有重新获得焦点。但是,如果您将光标移动至少一些像素,然后再次尝试滚动,它就会起作用。我不知道这是否是嵌套滚动的预期行为。如果不是你的意思,请多解释一下。
  • 问题是徽标永远不会到达 jumbotron 的顶部它停止大约一半我理解焦点需要在 jumbotron 上以便控制徽标滚动的概念这不是问题。
  • 好的。然后你应该为父容器(.wrapper)设置一个固定的高度,并将移动元素(.alpha)的bottom属性设置为包装高度和元素高度之间的差异(我已经更新了代码框)。另外,请注意 jumbotron 的原生顶部和底部填充为 64 像素,因此徽标不会在该点上方滚动。
【解决方案2】:

因此,据我了解,您希望使某些元素可滚动,而其他元素则处于固定位置。这可以使用 css 定位和溢出来完成。 如果您有一个想要不可滚动的元素,除非该 div 中有足够的内容使其可滚动,请使用以下 css

position: fixed;
overflow-y:scroll;

但是,如果您希望元素保持不可滚动(无论如何都无法滚动),只需使用以下 css:

overflow: hidden;

【讨论】:

  • 好吧,固定不是我想要的,如果我使用固定的话。它将这些元素修复到整个页面我希望它们保留在jumbotron 很抱歉,我认为这从我的示例中很清楚。你能解释一下我将如何在我的演示中使用overflow: hidden;
【解决方案3】:

你需要使用CSS的background-attachment属性。

HTML:

<div class="fixed">
--- Your Content Here ---
</div>

CSS:

.fixed {
  background: url('https://cdn.pixabay.com/photo/2016/06/11/23/22/soap-bubbles-1451092_960_720.jpg');
  background-attachment: fixed;
height: 400px;
  width: 50%;
  max-width: 600px;
  margin: 32px auto;
}

Check CodePen here

【讨论】:

  • 你能解释一下我将如何使用这个属性给定我的用例我将有多个小图像我想在后台滚动
  • 对不起,如果这听起来很粗鲁,您检查了代码 sn-p 还是 Codepen?您是否尝试过将此答案中的样式集成到您的代码中?首先,您必须将图像从&lt;img&gt; 的当前实现移动到CSS 的background-img 属性。至少试一试并发布您不理解的查询。这个答案是最小的而且非常简单。如果还是不明白,就提出具体的疑问。
  • 是的,我已经在我的网页上尝试过这个我一开始很困惑,因为你的 codepen 似乎不是我正在寻找的这个属性似乎正在修复图像并允许我想要的文本滚动相反。
  • 你能分享一些你看到过这种效果的例子吗?对不起,我无法想象你在说什么。您是否尝试过寻找Parallax 效果?这是你想要达到的目标吗?
  • 好的here 是我正在谈论的一个例子,如果我正确理解视差效果,那么当屏幕上的元素具有不同的滚动率时,我想要的是 jumbotron 中的文本被固定,并且徽标在用户滚动时移动到文本后面
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-02
  • 1970-01-01
  • 2015-10-07
  • 1970-01-01
  • 2016-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多