2015-04-23 106 views
1

我设法动态设置包含pdf的嵌入元素的高度。使用jQuery来设置新的高度。但我没有感觉我已经使用了最好的'解决方案'。动态设置嵌入pdf的高度

旧高度=身高在HTML设置
新高度=新计算出的高度设置与jQuery

我遇到了一个问题:我的嵌入型元件的200像素的旧的高度。当我试图用新的高度覆盖它时,嵌入元素确实改变为新的高度,但PDF高度保持在200px。 但是,当我将旧高度设置得高得多,5000px时,pdf对新高度的反应正确。
短版:
新嵌入高度>老嵌入高度= PDF高度停留在旧的嵌入高度
新嵌入高度<老嵌入高度= PDF高度是正确的

我当前的代码如下所示:

<object> 
    <embed id="embed_pdf" type='application/pdf' src="/files/<?=$var['filename']?>" data-width="<?=$var['image_width']?>" data-height="<?=$var['image_height']?>" style="max-width:<?=$var['image_width']?>px;" width="100%" height="<?=$var['image_height']?>"/> 
    <p>Error message</p> 
</object> 

而我的“脚本”代码:

$(document).ready(function() { 
    var pdf_width = $("#embed_pdf").attr("data-width"); 
    var pdf_height = $("#embed_pdf").attr("data-height"); 
    var object_width = $("#embed_pdf").width(); 
    var object_height = (object_width/pdf_width)*pdf_height; 
    $("#embed_pdf").attr('height', object_height); 
}); 

目前,它正在因为旧的高度我总是等于或高于新的高度。但这是一个已知或正常的问题?或者我做错了什么?什么可能是更好的解决方案?

回答

0

我没有问题调整IE 11中嵌入的PDF插件的大小,您正在使用哪种浏览器,并且您使用的是标准Adobe PDF插件?

$(window).resize(function(){ 
    //$('embed').attr('height', 200); 
    height = $(window).height() - 75; 
    //alert(height); 
    $('embed').attr('height', height); 
}); 

我能够做到类似于上面的文件准备和窗口调整大小。但是,我确实将所有项目设置为100%宽度,例如html,body和所有容纳我的嵌入的div容器。

如果您尝试采用文档或元素高度等,您可能必须首先缩小您的PDF,但窗口高度应该没问题。

+0

谢谢您的回复!我正在使用Chrome版本42.为什么窗口高度的'-75'? – Brieneke

+0

这可能只是滚动条等的空间,或者如果您还有标题栏,则可以防止它滚动。这通常是我这样做的原因。 – Greg