2015-04-23 4 views
1

Мне удалось динамически установить высоту моего элемента embed, содержащего pdf. Использование jQuery для установки новой высоты. Но у меня нет чувства, что я использовал лучшее «решение».Динамически заданная высота встроенного pdf

Старая высота = высота устанавливается в HTML
Новой высоты = Новая рассчитываются высота устанавливается с JQuery

я наткнулся на проблему: Мой встраивать элемент был старый высоту 200px. Когда я попытался переписать его с новой высотой, элемент embed изменился на новую высоту, но высота PDF осталась на уровне 200 пикселей. Но когда я установил старую высоту намного выше, 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

У меня не было проблем с изменением размера плагина PDF в IE 11, какой браузер вы используете, и используете ли вы стандартный плагин 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

Смежные вопросы