下面是我正在使用的示例页面:
https://www.midstory.org/toledos-water-issue-is-an-affordability-issue-too/
我有一个内嵌了故事Map文章的iframe在我们的WordPress站点上。故事Map文章是为了看起来与网站的其他部分无缝,填充整个视口和滚动,就像它是主页面的一部分。问题是,正如你在链接中看到的,在右边有两个滚动条。因为在嵌入的文章下面我们有评论框和网站页脚,其需要能够在用户到达嵌入文章的底部之后滚动到。
目前的解决方案“工作”,但看起来相当笨拙。有没有办法用主滚动条滚动iframe文章,然后让它滚动主页的其余部分,一旦到达嵌入文章的底部?
我的一个想法是把嵌入窗口固定在 windows 中,把主条目做成嵌入窗口的高度,这样就可以滚动页面了,但是有两个问题:
1.如何获得嵌入物品的高度?
1.如何控制嵌入文章从主文章的滚动位置?
1条答案
按热度按时间vh0rcniy1#
有几种方法可以使嵌入的故事Map文章与页面的其余部分融为一体,同时只需要一个滚动条。
CSS方式
一种方法是将iframe的overflow属性设置为hidden,然后使用position属性将iframe绝对定位在容器元素中。要在容器中启用滚动,应指定容器元素具有固定的高度和宽度,以及overflow-y:滚动。
看起来是最简单的,然而,它可能不像其他JS实现那样可靠。
JS计算:
一种方法是使用JavaScript/jQuery监听主页上的滚动事件,然后根据主页的滚动位置更改iframe的滚动位置,可以使用
window.scrollY
属性获取主页的当前滚动位置,然后使用contentWindow.scrollTo()
方法设置iframe的滚动位置。但是,这种方法需要提前知道嵌入项的高度,这是您在查询中突出显示的问题之一。
使用JS库(https://github.com/davidjbradshaw/iframe-resizer)
一个更好的解决方案可能是利用
iframe-resizer
这样的iframe大小调整器库,它允许根据内容大小调整iframe的大小,还允许父页面控制iframe的滚动位置。iframe大小调整器库可用于自动将iframe调整为内容的大小,以及监听父页面上的滚动事件并更改iframe的滚动位置。
您还可以传递其他选项,例如
heightCalculationMethod
,以设置库应如何计算iframe的高度,并将scrolling设置为true,以允许父页面控制iframe的滚动位置。希望这能有所帮助!