2012-04-08 2 views
0

Проблема: Чтобы сделать изображение внутри динамического динамического изменения динамически (H & W, пропорционально) внутри div, который становится короче при изменении размера окна (существуют по существу три области: Top - static , нижний - статический, среднединамический) с width:100% и top:#pxbottom:#px. Изображения должны в конечном счете, только размер их набора высоты (603x427)Использование jquery, динамически и пропорционально изменить размер img

Вот страница:

My current woe

Я чертовски близко, но то, что происходит на код ниже:

<script type="text/javascript"> 
      $(window).resize(function() { 
       var hgt = $(window).height() - 427; 
       var wid = $(window).width() - 633; 
       $('.slides_container img').height(hgt); 
       $('.slides_container img').width(wid); 
       $('.slides_container').height(hgt-30); 
       $('.slides_container').height(hgt); 
       $('.vid').width($(window).width()); 
      }); 
</script> 

- высота изображения изменяется, как и ширина, но они не изменяются пропорционально. Вместо этого ширина изменяется правильно, и высота изменяется правильно, но независимо друг от друга. Я хочу, чтобы изображения оставались пропорциональными.

Легенда: .slides_container является частью модуля и содержит изображение, .slides_container img является изображением, .vid содержит .container для центрирования. Для вышеуказанного кода $('.slides_container').height(hgt-30); предназначен для разбивки на страницы.

ответ

1

Используйте функцию CSS() вместо:

$(window).resize(function() { 
    var hgt = $(window).height() - 427; 
    var wid = $(window).width() - 633; 
    $('.slides_container img').css({ 
     width:wid, 
     height:hgt 
    }); 
    $('.slides_container').height(hgt); 
    $('.vid').width($(this).width()); 
}); 
+0

Все еще получая рост и ширину пропорционально друг другу. Высота становится меньше, ширина - нет, ширина становится уже, высота - нет. Опять же, я ищу динамический _and_ пропорциональный размер окна. Итак, есть ли способ связать их вместе? – Adam

+0

Итак, чтобы динамически изменять размер изображения, я использовал 'width: 'auto',' (см. Edit). – Adam

+0

По крайней мере, я попытался добавить редактирование. Во всяком случае, изменение ширины на «авто» работало. Хотя я все еще пытаюсь запустить jQ в onLoad. Как мне? Изображение изменяется только после изменения размера окна ... – Adam

0

Если можно пойти на компромисс, без Img элемента вы можете сделать его фоном, то я думаю, что это то, что вы ищете http://css-tricks.com/how-to-resizeable-background-image/

В противном случае, если у вас есть исходное соотношение (ration = orgWidth/orgHeight), вы можете взять его и отразить его по ширине/высоте. On resize, height = org_height * ratio. Выполнено до этого, довольно прямолинейно: How to resize images proportionally/keeping the aspect ratio?

+0

К сожалению, решение .css не будет делать: либо только размер изображения изменяется только по ширине. Он также должен изменять размер по высоте, поскольку окно становится короче _and_ width по мере того, как окно становится более узким. – Adam

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