Вертикальное центрирование div с изображениями в процентах
В настоящее время я программирую свое новое веб-портфолио. Все идет нормально. Я решил сделать это полностью на основе%, и я борюсь с одной последней деталью:
Я должен центрировать изображения на основе% по вертикали в блоке div, который также основан на%.
Вот скрипка: http://jsfiddle.net/PX4tF/4/
Это код, который не работает так, как я хочу:
$(document).ready(function(){
$(window).resize(function(){
$('.vertical_center').css({
position:'relative',
left: ($(window).width()
- $('.vertical_center').outerWidth())/2,
top: ($(window).height()
- $('.vertical_center').outerHeight())/2
});
});
// To initially run the function:
$(window).resize();
});
Скрипт, который я сейчас использую, начинает работать правильно только при изменении размера окна. До этого он как бы центрирует изображение, но не правильно. Кроме того, у меня есть несколько блоков div, таких как поле в скрипте на моей странице, и в настоящее время я должен продублировать скрипт, чтобы правильно отцентрировать его после изменения размера браузера. Есть ли способ сделать это проще?
Вот ссылка на бета-сайт: http://www.zeiteffekt.de/relaunch
Я не тот программист, поэтому надеюсь, что вы, ребята, сможете мне помочь с этим.
Ура, Тим
2 ответа
Попробуйте что-то вроде этого
function alignImage()
{
$('.vertical_center').css({
position:'relative',
left: ($(window).width() - $('.vertical_center').outerWidth())/2,
top: ($(window).height() - $('.vertical_center').outerHeight())/2
});
}
$(window).load(function() {
alignImage();
});
$(window).resize(function() {
alignImage();
});
Изображения не готовы, когда вызывается $(document).ready. Используйте вместо нагрузки
Попробуй это:
$(window).resize(function(){
$( ".img-swap").each(function() {
$(this).css({
position:'relative',
marginTop: ($(this).parent().outerHeight()
- ($(this).outerHeight()+15))/2
});
});
});
jsfiddle
Я заменяю marginTop
вместо top
Так как marginTop
поможет подтолкнуть текст чуть ниже изображения в то время как top
только push-изображение.