Не могу центрировать мои изображения в слайд-шоу Jquery Cycle

У меня такая проблема, и я нигде не могу найти решение....

У меня есть 3 div внутри 1 div, и у каждого из этих 3 div есть 3 изображения, и все они идут рядом. Я использовал цикл jQuery, чтобы сделать 3 слайд-шоу. Это работает отлично. Некоторые изображения должны быть центрированы, как вы можете видеть здесь.

http://jsfiddle.net/rBaWG/19/

or

http://www.willruppelglass.com/index.php

Я пробовал все, но, похоже, цикл jQuery настраивает мой код CSS для центрирования этих изображений, кто-нибудь знает, как это исправить?


person user979331    schedule 03.05.2012    source источник
comment
Вы пробовали ‹center›, это очень плохо!   -  person JonH    schedule 03.05.2012
comment
я только что создал два div с тремя изображениями и поместил style: text-align: center;, и он центрируется для меня. Убедитесь, что вы очистили кеш/историю браузера или нажмите ctrl f5.   -  person JonH    schedule 03.05.2012
comment
Я предполагаю text-alight:center с/б text-align:center. Попробуйте создать jsFiddle — вы получите намного больше помощи.   -  person Barry Kaye    schedule 03.05.2012
comment
Ну, сверху: 0; слева: 0. Зачем это?   -  person shadowhorst    schedule 03.05.2012
comment
Я обновил свой jsfiddle ниже в своем ответе, задействовав div и центрируя изображение в div.   -  person lucuma    schedule 08.05.2012
comment
Я не понимаю... В jsFiddle и на демо-странице расположение изображений совершенно разное. В скрипке изображения плавают слева. Как вы имеете в виду по центру ?? если вы спросите меня, на демо-странице хорошо центрированы. Не могли бы вы объяснить?   -  person Roko C. Buljan    schedule 08.05.2012
comment
Я не очень хорошо понимаю этот теард. Изображения отображаются в центре своего собственного div. И я не вижу отличий ни в одном из примеров ответов от оригинала вопроса. Чего вы именно хотите? Центрировать изображения относительно друг друга?   -  person Christopher Ramírez    schedule 10.05.2012
comment
@user979331 user979331 Какой-нибудь из ответов здесь сработал для вас?   -  person lucuma    schedule 10.04.2013


Ответы (6)


Попробуйте это:

.pics {  
    padding: 0;  
    margin: 0 auto; /* CHANGE HERE */
    width: 225px;
    height: 200px;
} 

.pics img {    
    background-color: #eee;
    /* Removed top and left */
}

.contentImages {
    text-align: center; /* Add */
    border: 1px solid #CCC; 
    padding: 10px; 
    margin: 20px auto 0; 
    position: relative;
    width: 675px;
    overflow: hidden;
}

Работает jsFiddle для горизонтально центрированных изображений, по крайней мере, в Chrome. Вопрос: Вы хотите, чтобы три изображения были рядом или друг над другом?

Если вы хотите, чтобы они были рядом, вам придется удалить width из класса .pics в приведенном выше CSS.

person Cᴏʀʏ    schedule 03.05.2012
comment
это не сработало :( но я применил его к своему коду, хотя на willruppelglass.com/index.php Вы можете заглянуть туда, чтобы увидеть, с чем я имею дело. - person user979331; 03.05.2012
comment
@ user1193385: JS-циклер, который вы используете, будет динамически изменять CSS и позиционирование элементов. Я не уверен, что вы можете многое сделать. Циклически повторяющиеся изображения имеют разные размеры, что усложняет проблему. Возможно, вам придется точно описать, как вы хотите, чтобы он выглядел и вел себя, если вы хотите получить ответ, который соответствует циклическому изображению. - person Cᴏʀʏ; 03.05.2012
comment
@Cory Ссылка jsfiddle у меня не работает в Chromium. Плагин Cycle переопределяет стили css встроенным css. - person ArtBIT; 12.05.2012

Я пробовал и тестировал это, и он работает так, как требуется:

HTML:

<div class="contentImages">
    <div class="pics">
        <div class="cc"><img src="http://www.willruppelglass.com/upload/home1.jpg" height="200"/></div>
        <div class="cc"><img src="http://www.willruppelglass.com/upload/home2.jpg" height="200"/></div>
        <div class="cc"><img src="http://www.willruppelglass.com/upload/home3.jpg" height="200"/></div>
    </div>
    <div class="pics2">
        <div class="cc"><img src="http://www.willruppelglass.com/upload/home5.jpg" width="225"/></div>
        <div class="cc"><img src="http://www.willruppelglass.com/upload/home4.jpg" height="200"/></div>
        <div class="cc"><img src="http://www.willruppelglass.com/upload/home6.jpg" height="200"/></div>
    </div>
    <div class="pics3">
        <div class="cc"><img src="http://www.willruppelglass.com/upload/home7.jpg" height="200"/></div>
        <div class="cc"><img src="http://www.willruppelglass.com/upload/home8.jpg" height="200"/></div>
        <div class="cc"><img src="http://www.willruppelglass.com/upload/home9.jpg" height="200"/></div>
    </div>
</div>

Дополнение CSS:

.cc img{
    margin: auto;
}
.cc{
    text-align:center;
    width:225px !important;
    overflow:hidden;
}
person Bloafer    schedule 11.05.2012

Вот как я бы это сделал, добавляя поля к изображениям с помощью некоторой магии jQuery и следя за тем, чтобы контейнеры всегда были того же размера, что и самое большое изображение, используя параметр containerResize в Cycle, например:

$('img').each(function() {
    var left = ($(this).parent().width() / 2) - ($(this).width() / 2);
    var top = ($(this).parent().height() / 2) - ($(this).height() / 2);
    $(this).css({marginLeft: left, marginTop: top});
});

$('.pics').cycle({
    fx: 'fade',
    timeout:5000,
    containerResize: 1,
    nowrap: 0,
    random: 1,
});

$('.pics2').cycle({
    fx: 'fade',
    timeout: 8000,
    containerResize: 1,
    nowrap: 0,
    random: 1
});

$('.pics3').cycle({
    fx: 'fade',
    timeout: 6000,
    containerResize: 1,
    nowrap: 0,
    random: 1
});

Вот ДЕМОНСТРАЦИЯ!

или ВЕРТИКАЛЬНАЯ ДЕМО!

person adeneo    schedule 10.05.2012

Возможно, было бы лучше зациклить некоторые элементы div и центрировать изображения в элементах div.

http://jsfiddle.net/lucuma/wHLJD/

person lucuma    schedule 07.05.2012

Я использовал свой небольшой плагин:

демонстрация jsFiddle

Я немного изменил ваш CSS, обернув каждое изображение (с помощью jQuery) в <span> элементов.
Сделав это, я смог центрировать ваши изображения как по вертикали, так и по горизонтали, используя высоту строки и некоторые хитрости, которые вы можете найти в моем CSS:

.contentImages{
    border:1px solid #CCC;
    padding:10px;
    margin:20px auto 0;
    position:relative;
    width: 675px;
    height:200px; /* added */
    overflow:hidden;
    background:#fff;
}
.pics{  
    position:relative; /* added */
    display:block; /* added */
    float:left; /* added */
    width:225px;
    height:180px;
}
.pics img {
    position:relative;
    vertical-align:middle;
    background-color: #eee;
    max-width:100%;
}
.pics span{    /* created by jQuery */
    cursor:pointer;  /* yes, I made your images swappable */
    position:absolute;
    margin-left:0px;
    height:200px;
    width:225px;
    text-align:center;
    background:#444;
    line-height:196px;
}

HTML: все ваши родительские элементы теперь имеют общий класс pics для упрощения CSS.

<div class="pics pics1">

Вот мой плагин jQuery (fadeMe!):

/*FadeMe 'FPS'//jQuery_plugin//Author:Roko C.Buljan (2012)// www.roxon.in*/(function($){$.fn.fademe = function(F,P,S){F=F||700;S=S-1||0;P=P||3000;var E=this.children(),T;function a(){E.siblings(E).stop().fadeTo(F,0).eq(S=++S%E.length).stop().fadeTo(F,1);}E.on('mouseenter mouseleave click',function(e){var m=e.type==='mouseenter'?clearTimeout(T):(e.type==='click'?a():aa());}).hide().eq(S).show();function aa(){T=setTimeout(function(){a();aa();},F+P);}aa();};})(jQuery);

$('.pics img').each(function(){ // just added to wrap your images into spans.
  $(this).wrap('<span />');
});

$('.pics1').fademe(1360,3500,2); //fadeTime,pause,StartSlideN
$('.pics2').fademe(1300);        //fadeTime
$('.pics3').fademe(1240,3920);   //fadeTime,pause

Это все. А этот плагин позволяет:

  • Остановить наведение слайда на HOVER
  • Нажмите, чтобы перейти
  • Настройте время перехода, паузу и начало слайда N

Настройки по умолчанию:
1. Время затухания = 700, Пауза = 3000, Стартовый слайд = 1;

Дополнительную информацию можно найти на моей странице ЗДЕСЬ

person Roko C. Buljan    schedule 08.05.2012

Код для центрирования изображений в div изображения:

$('.pics').cycle({
    fx: 'fade',
    timeout:5000,
    random: 1,
    height: 200,
    width: 225,
    center: true
});

$('.pics2').cycle({
    fx: 'fade',
    timeout: 8000,
    random: 1,
    height: 200,
    width: 225,
    center: true
});

$('.pics3').cycle({
    fx: 'fade',
    timeout: 6000,
    random: 1,
    height: 200,
    width: 225,
    center: true
});
person lfergon    schedule 11.05.2012