У меня есть небольшая функция, которая запускается при загрузке и изменении размера окна ... но изменение размера окна не работает.Pretttty уверен, что синтаксис правильный .. потому что я запускал функции вне окна изменения размера раньше.Не можете разобраться?
живой сайт здесь: http://guit.dhut.ch/
JavaScript:
(function( $ ){
$.fn.respond = function() {
/* initialize function on window load and resize */
$(document).ready(function() {
dimensions();
});
$(window).load(function() {
dimensions();
});
$(window).resize(function() {
dimensions();
});
/* declare variables */
var pic = this
var browserWidth = $(window).width();
var imgRatio = this.width() / this.height()
var availableHeight = ($(window).height() - $('header').height() - $('footer').height() - 80)
var browserRatio = browserWidth / availableHeight
/* set image's height or width depending on the browser window's size */
function dimensions() {
if (browserRatio >= imgRatio ) {
/* if the browser is landscape, set the image's height to fill the available space */
//$('body').css('background', 'green');
pic.height(availableHeight).width('auto');
} else {
/* if the browser is portrait, set the image's width to fill the browser width less margins */
//$('body').css('background', 'red');
pic.width(browserWidth - 40).height('auto');
}
center();
};
/* horizontally center content */
function center() {
pic.css('margin-left', (browserWidth - pic.width())/2);
};
};
})( jQuery );
РЕДАКТИРОВАТЬ:
Благодаря @WTKУ меня это работает.Ниже новый код.Было несколько комментариев, предлагающих использовать CSS.Вот почему я этого не сделал: на этой домашней странице будут размещены как альбомные, так и портретные фотографии.Если бы я установил процентную высоту изображения, скажем, 100% его контейнера, ландшафтные изображения обрезались бы по странице после определенного размера.Это довольно легко и быстро, и позволяет моему сайту оставаться полностью отзывчивым.
JavaScript:
(function( $ ){
$.fn.respond = function() {
/* initialize function on window load and resize */
$(document).ready(function() {
dimensions();
});
$(window).load(function() {
dimensions();
});
$(window).resize(function() {
dimensions();
});
/* declare affected elements */
var pic = this
/* set image's height or width depending on the browser window's size */
function dimensions() {
/* declare variables */
var browserWidth = $(window).width();
var imgRatio = pic.width() / pic.height()
var availableHeight = ($(window).height() - $('header').height() - $('footer').height() - 80)
var browserRatio = browserWidth / availableHeight
if (browserRatio >= imgRatio ) {
/* if the browser is landscape, set the image's height to fill the available space */
pic.height(availableHeight).width('auto');
} else {
/* if the browser is portrait, set the image's width to fill the browser width less margins */
pic.width(browserWidth - 40).height('auto');
}
/* horizontally center content */
pic.css('margin-left', (browserWidth - pic.width())/2);
};
};
})( jQuery );