#javascript #jquery #css #carousel
#javascript #jquery #css #карусель
Вопрос:
Я создал простую карусель с внешним DIV, ширина и высота которой установлены на 600 X 800, а позиция установлена в «position: relative», а изображения внутри этого DIV должны быть «position: absolute» с верхним и левым значением, равным нулю. Я также сохранил кнопку «влево / вправо», чтобы всякий раз, когда я нажимаю кнопку влево / вправо, изображения перемещались влево / вправо соответственно с помощью jQuery. Все работает нормально, включая адаптивный. Но у меня проблема, когда у меня разные размеры изображений, я хочу отобразить их в горизонтальном и вертикальном центре («выравнивание по вертикали: по центру»). Я пробовал разные способы в CSS, но, похоже, безуспешно. Я знаю, что могу сделать это с помощью JavaScript, но интересно, может ли кто-нибудь помочь мне, используя только CSS, пожалуйста, очень признателен… Я хочу избегать JavaScript, если это возможно. Пожалуйста, обратите внимание, что в этой карусели отображается по одному изображению за раз. Вот как я спроектировал / запрограммировал.
Это мой текущий код :
<div style="position:relative;">
// image style is set to position:absolute;left:0;top:0
// _______________________________________
// | | | |
// | | |_______________|
// | | |
// |___________| |
// |__________|
//
</div>
Я хочу, чтобы это было так :
<div>
// ___________
// ____________| |
// | | |_______________
// | | | |
// | | |_______________|
// |___________| |
// |__________|
</div>
Спасибо.
Ответ №1:
Вы можете использовать flexbox в вашем контейнере div.
div {
display: flex;
flex-direction: row;
align-items: center;
}
Комментарии:
1. Спасибо bendelszl, но при нажатии кнопки «Далее» следующее изображение мерцает в правой части DIV. Это меньше секунды, но выглядит не очень хорошо. Еще раз спасибо.
2. Я могу предложить вам добавить переход, чтобы сделать его плавным, если он еще не добавлен. Мерцание может быть вызвано изменением используемого вами значения left или translate.