Внесены некоторые небольшие улучшения в сценарий, данный Алексом, чтобы полностью удовлетворить мои потребности.Теперь первая миниатюра в каждой строке не получает левого поля, а последняя миниатюра в каждой строке не получает правого поля, так что миниатюры действительно дают нам полную ширину контейнера div.Также используется .outerWidth () jQuery вместо .width () для получения ширины миниатюры, так что вы можете использовать границы и т. Д. Без ущерба для расчетов.Теперь скрипт также запускается, как только загружается DOM, чтобы рассчитать правильный запас с начала, а не только при изменении размера окна.
Вот новый скрипт:
<script type="text/javascript">
$(document).ready(calculateThumbnailMargin);
$(window).resize(calculateThumbnailMargin);
function calculateThumbnailMargin() {
// Define a minimum margin
var minimumMargin = 20;
// Get the outer width of the thumbnail (including padding and border)
var thumbWidth = $('.video-thumbnail-container').outerWidth();
// Calculate how man thumbnails can fit on one row
var numberofdivs = $('#content-area').width() / thumbWidth;
numberofdivs = Math.floor(numberofdivs).toFixed(0);
if (numberofdivs >= $('.video-thumbnail-container').size()) {
numberofdivs = $('.video-thumbnail-container').size();
};
// Calculate the remaining width of the row
var widthleft = $('#content-area').width() - (thumbWidth * numberofdivs);
// Calculate the proper margin to use
var margin = (widthleft / (numberofdivs - 1)) / 2;
// Check that the margin is not less than the minimum margin
if (margin < minimumMargin) {
// Use one less thumnail on each row
numberofdivs = numberofdivs - 1;
// Calculate the remaining width of the row
widthleft = $('#content-area').width() - (thumbWidth * (numberofdivs));
// Calculate the proper margin to use
margin = (widthleft / (numberofdivs - 1)) / 2;
}
// Add the proper margin to each thumbnail
$('.video-thumbnail-container').attr('style', 'margin-left:' + margin + 'px; margin-right:' + margin + 'px');
// Remove the left-margin on the first thumbnail on each row and the right-margin on the last thumbnail on each row
for (i = 0; i < $('.video-thumbnail-container').size(); i = i+numberofdivs) {
$(".video-thumbnail-container:eq(" + i + ")").css('marginLeft', 0);
$(".video-thumbnail-container:eq(" + (i + numberofdivs - 1) + ")").css('marginRight', 0);
}
}