如何在iframe中制作一个固定的div

时间:2015-03-26 21:25:30

标签: javascript jquery html css iframe

我想在窗口底部制作一个浮点div。它运行正常,如https://fiddle.jshell.net/8ghsm1La/light/

所示

enter image description here

我得到的问题是当我将html放在iframe中时。粘性div来自iframe的底部。在这种情况下,我希望它位于我的屏幕底部,而不管iframe滚动的位置 https://jsfiddle.net/x1p4bf7j/

<iframe id="if1" src="https://fiddle.jshell.net/8ghsm1La/show/light/" style="width: 1310px; height: 582px; overflow: hidden;" />

即我希望固定粘性div位于容器页面的底部。

enter image description here

4 个答案:

答案 0 :(得分:1)

我认为你可以用css放置div:

#iframe {
  position: fixed;
  width: 100%;
  height: 30px;
  margin: 0px !important;
  background-color: yellow;
  bottom: 0px;
  z-index: 1000;
}

答案 1 :(得分:1)

您可以使用css使iframe与您的身体一样大,然后粘性页脚将按预期工作。

jsFiddle

我从这个SO question中获取了大小样式。

CSS:

body {
    margin:0px;
    padding:0px;
    overflow:hidden
}

#if1 {
    overflow:hidden;
    overflow-x:hidden;
    overflow y:hidden;
    height:100%;
    width:100%;
    position:absolute;
    top:0px;
    left:0px;
    right:0px;
    bottom:0px;
    height: 100%; 
    width: 100%;
}

答案 2 :(得分:0)

需要注意的是,子iframe和父iframe必须来自同一个域。 你需要一些JavaScript。我创造了一个工作小提琴。

https://fiddle.jshell.net/zmr0m5qv/

var newNode = document.createElement('div');  
newNode.style.bottom = 0;
newNode.style.height ="25px";
newNode.style.left = 0;
newNode.style.position = "fixed";
newNode.style.right = 0;
newNode.style["z-index"] = 100;
newNode.style["background-color"] = "yellow";
newNode.innerHTML = "sticky Text";
parent.document.body.appendChild( newNode );

答案 3 :(得分:-1)

按照我在CodePen上提供的指南,您可以简单地将其应用于此问题。不使用Javascript来保持这个简单,因为它可以全部由CSS处理。

* {
    margin: 0;
}
html, body {
    height: 100%;
}
.wrapper {
    min-height: 100%;
    height: auto !important;
    height: 100%;
    margin: 0 auto -60px;
}
.footer {
    height: 40px;
}
.push {
    height: 80px;
}

The original content中,无论有多少内容,页脚都会保留在页面底部。这适用于#content中没有足够的内容使.sticky元素适合底部。

现在要在iFrame页面上应用它,你只需要包含CSS来定位iFrame全高。如下所示:http://fiddle.jshell.net/8ghsm1La/4

html, body, iframe {
    height: 100%;
    max-height: 100%;
    min-height: 100%;
    border: 0;
    margin: 0;
}

不完全确定iFrame服务器的目的是什么,我建议使用PHP include()或JavaScript的AJAX功能来加载内容,而不是尝试在多个地方应用CSS。

希望这有帮助。如果您有任何问题,请告诉我。