javascript - 如何阻止 iframe 滚动直到它完全位于页面上? (里面的图片)

标签 javascript html css iframe

我最近受到照片博客的启发 Up On A Hill ,它使用它的照片来创建只有在您滚动过帖子上的所有文本后才会移动的框架。我想做一些类似的事情,但使用带框的 HTML 页面而不是照片滑过。而不是简单地滚动浏览每一页,我希望新内容像卡片一样在旧内容上滑动 – 也就是说,当新内容滑过顶部时,旧页面保持原位。

问题是,HTML 页面比照片更挑剔,而且我在使用 JavaScript 方面非常业余。

我制作了一个纯 CSS 模型。您有一个看起来像网站的框架,但是当您到达底部时,下一框架向上滑动:

i.stack.imgur.com/33JMO.png

除了两件事之外,那将是巨大的。首先,向上滑动的框架是一个事件页面,这意味着如果您的鼠标在滚动时悬停在它上面,那么该框架内的内容也会滚动,而不是继续将新“卡片”向上移动到页面上。所以你最终会遇到这样一团糟,底部文章滚动到末尾,但它只占用一小部分页面空间:

i.stack.imgur.com/9KSd4.png

还有一个问题是,这种布局只能工作,因为一个框架固定在页面上,而另一个框架是绝对的。但与确保卡片在滚动之前完全位于页面上相比,这似乎是一个不太具有挑战性的问题。

如何防止 iframe 滚动到顶部?我想解决方案涉及以某种方式 overflow hidden ,但我不确定我如何检测 iframe 在页面上的位置,或者我如何在它就位后改变它的可滚动性。

最佳答案

Up On A Hill 不使用 iframe 来实现它们的效果,它们实际上并不阻止滚动的发生。事实上,它们实现效果的方法是将所有图像与滚动条同步地向下移动页面,在特定时间间隔内暂时禁用此效果。这给人一种滚动被禁用的错觉。

您无法仅使用 CSS 来完成此操作。我的建议是

  • 不要使用 iframe(正如您已经发现的那样,它们会使事情变得复杂)。
  • 查看 Up On A Hill 的 HTML 和 JS,看看它们是如何完成他们想要做的事情的。不过不要偷!如果您提出要求,也许他们会允许您使用它。
  • 使用 jQuery。
    • 学习一些教程。
    • 阅读 .scrollTop 和 .position(也可能是 .offset),因为这些将是您用来计算和设置它们的内容页面上的 CSS 位置。

关于javascript - 如何阻止 iframe 滚动直到它完全位于页面上? (里面的图片),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7675084/

相关文章:

javascript - 删除html表格行最后一个单元格的内容

javascript - react 上下文不起作用

html - 使我的图像适合浏览器的宽度

html - 列表文本不会与图像对齐

css - 框阴影覆盖了 DIV 的一小部分

javascript - HTML 进度元素未更新

Javascript 在不应该的时候删除空格?

html - 如何去除css文件中重复的id

css - 如何将 CSS 应用于 IE8 中的命名空间前缀元素?

javascript - 如何缩短自动发布的文本长度