所以,我面临的问题是这样的: 我有一个图层,它将被放置在页面上的pdf之上。 PDF要么使用嵌入,要么使用iframe来包含它。但是,CSS样式不适用于PDF(因为它是一个插件?)。因此,即使我把z-index:1000用于,该层仍然落后于PDF。任何想法如何解决?
这是代码:
<style type="text/css">
<!--#apDiv1 {
position:absolute;
left:543px;
top:16px;
width:206px;
height:223px;
z-index:1000;
background-color:#999999;
}
</style>
<body>
<!-- embed the pdf -->
<object data="test.pdf" type="application/pdf" width="600" height="500" style="z-index:1" wmode="opaque">
alt : <a href="test.pdf">test.pdf</a>
</object>
<!-- layer -->
<div id="apDiv1" >Whatever text or object here.</div>
</body>
答案 0 :(得分:25)
阅读一些论坛后......(这里有一些评论)
PDF由Acrobat Reader插件加载。它有点像它自己的东西,并且与任何HTML甚至浏览器无关(除了被浏览器加载)。 人们对Flash插件有同样的问题,而且没有解决方案。所以我想也没有解决方案。 您最好的选择是重新设计菜单,以便它们不会进入pdf占用的空间。
如果是插件,则无法可靠地将其他元素放在其顶部。当插件涉及时,浏览器通常会释放大部分“层”元素的能力。
没有直接支持在Api或Dom中覆盖'z-indexing'div。该插件加载了一个可执行文件,用一个非常简单的术语来打破浏览器窗口中的漏洞。使用'iframe shim'技术是标准的解决方法,尽管透明度可能很棘手。
我的解决方案: 两个iframe,每个都在一个div内,具有不同的z-index,当你点击黄色div时,会显示空的iframe(在pdf iframe前面),这样你就可以看到pdf文档中的绿色div。
<html>
<head>
<script type="text/javascript">
function showHideElement(element){
var elem = document.getElementById(element);
if (elem.style.display=="none"){
elem.style.display="block"
}
else{
elem.style.display="none"
}
}
</script>
</head>
<body>
<div style="position:absolute;height:100px;width:100px;background-color:Yellow;" onclick="showHideElement('Iframe1');">click me</div>
<div style="position:absolute;z-index:100;background-color:Green;height:100px;width:100px;margin-left:200px;"></div>
<div style="position:absolute;z-index:20;margin-left:200px;">
<iframe visible="true" id="Iframe1" height="100" width="100" runat="server" frameborder="0" scrolling="auto" >
</iframe>
</div>
<div style="position:absolute;z-index:10;margin-left:100px;">
<iframe visible="true" id="ipdf" src="http://www.irs.gov/pub/irs-pdf/fw4.pdf" height="1000" width="1000" runat="server" frameborder="0" scrolling="auto" >
</iframe>
</div>
</body>
</html>
费尔南多·罗德里格斯
frodale@gmail.com
答案 1 :(得分:5)
有一个jquery插件bgiframe,这使得实现此修复非常简单。
答案 2 :(得分:1)
通常,您可以通过在if下直接放置iframe填充来解决这些z-index问题。也就是说,它具有相同的大小和位置(但没有实际内容)。我不是100%肯定这适用于PDF,但我知道这解决了一些其他z-index问题(例如IE6上的选择框)。
如果你动态放置div,iframe垫片会很痛苦,因为你必须用它来移动iframe垫片。答案 3 :(得分:1)
我刚刚找到了解决方法。使用iframe中的google pdf查看器在页面上显示您的pdf,然后它就像任何其他div一样。
示例:
&lt; iframe id =“ifr” SRC = “http://docs.google.com/gview?url=http://www.mysite.com/test.pdf&embedded=true” style =“width:718px; height:700px;” FRAMEBORDER = “0” &GT;
答案 4 :(得分:0)
如果它是IE的测试,则可能与ComboBox的问题相同。尝试将iframe插入div。
答案 5 :(得分:0)
某些情况下的解决方案是使用div包装iframe,并在div或iframe父级上使用style属性“clip”。
<!DOCTYPE html>
<html>
<head>
<title>Test Page - IFramed PDF Document Clipping</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type='text/javascript'></script>
<style type='text/css'>
body {padding:0em;margin:0em;font-size:16px;position:relative;}
body * {line-height:1em;}
#TOPNAV {list-style:none;display:block;}
#TOPNAV li {display:inline;}
#IFRAMEWRAPPER
{
display:block;margin:0em;padding:0em;
position:fixed;width:auto;left:0.125em;right:0.125em;top:4.125em;bottom:0.125em;
}
#docFrame {width:100%;height:100%;position:relative;margin:0em;padding:0em;}
input.ACTIVE {background-color:Gray;outline:0.125em solid silver;}
.clearfix {zoom:1;}
</style>
<script type='text/javascript'>
$(document).ready(function () {
$('#TOPNAV input').click(function () {
$("#TOPNAV input.ACTIVE").toggleClass('ACTIVE');
$(this).toggleClass('ACTIVE');
$("#IFRAMEWRAPPER").css("padding", "1em");
$("#IFRAMEWRAPPER").css("padding", "0em");
$("#IFRAMEWRAPPER iframe").toggleClass("clearfix");
$("#IFRAMEWRAPPER").toggleClass("clearfix");
$("#IFRAMEWRAPPER").hide();
$("#IFRAMEWRAPPER").slideDown(2);
});
$('#btnCLICK1').click(function () {
$("#IFRAMEWRAPPER").css("clip", "rect(auto, auto, auto, 5em)");
});
$('#btnCLICK2').click(function () {
$("#IFRAMEWRAPPER").css("clip", "rect(auto, 5em, auto, auto)");
});
$('#btnCLICK3').click(function () {
$("#IFRAMEWRAPPER").css("clip", "rect(5em, auto, auto, auto)");
});
$('#btnCLICK4').click(function () {
$("#IFRAMEWRAPPER").css("clip", "rect(auto, auto, 5em, auto)");
});
});
</script>
</head>
<body>
<div class='TOPNAVWRAPPER'>
<ul id='TOPNAV'>
<li><input type='button' id='btnCLICK1' value='RIGHT' /></li>
<li><input type='button' id='btnCLICK2' value='LEFT' /></li>
<li><input type='button' id='btnCLICK3' value='BOTTOM' /></li>
<li><input type='button' id='btnCLICK4' value='TOP' /></li>
</ul>
</div>
<div id="IFRAMEWRAPPER">
<iframe id='docFrame' name='TargetFrame' src="YOUR-PDF-DOCUMENT.pdf" onloadeddata='' seamless='seamless' ></iframe>
</div>
</body>
</html>