背景:
- 我们通过iframe在客户网站上提供应用程序
- iframe是无缝的,现在只在父div中滚动。
- 我们应用程序中的一个div具有固定位置并且应始终存在,无论滚动多少。
- 更新:我们在iframe旁部署了一个javascript脚本,因此我们可以访问托管页面
问题:当在iframe内提供时,固定位置的Div似乎不能相对于整个网页保持其固定位置。这意味着,当某人滚动时,固定的div就不再固定了。
是否有任何解决方法?
背景:
问题:当在iframe内提供时,固定位置的Div似乎不能相对于整个网页保持其固定位置。这意味着,当某人滚动时,固定的div就不再固定了。
是否有任何解决方法?
$(() => {
$('#contentframe').ready(() => {
const topElem = $("#top", frames['contentframe'].document);
const topElemTopPos = topElem.offset().top;
$(window).on('scroll', () => {
const scrollFromTop = $(document).scrollTop();
topElem.css({ top: (scrollFromTop + topElemTopPos) + "px" });
});
});
});
除非您也可以访问托管页面,否则无法完成此操作。
编辑:考虑到您也可以控制托管页面,这是有可能的,但不会很容易或美观 :/。
必须通过托管页面上的fixed
定位元素进行操作,目前我只能想到两种变化:
position: fixed
样式),另一个带有其他所有内容。同样,您的脚本将创建两个iframe而不是一个。link
元素,甚至是相关元素的内联样式)。如果您只需要静态样式表,则完成了!但是,如果您需要一些动态行为,则必须在托管页面和托管的iframe之间进行通信。在这种情况下,我建议使用类似iframe-resizer的东西。 - Nick Ribal