Целью является создание слайдера с использованием только CSS. Для этой попытки я попытался использовать изображение 200px на 1500px, имеющее «3 раздела» (с цветовой кодировкой) Позиционированный абсолютно с левым: 0, переключатель по умолчанию, установленный по умолчанию, показывает первые 500 пикселей изображения (слайд 1), поскольку обертка - 200x500 пикселей с скрытым переполнением. Проверка переключателя с помощью метки для «slide2» дает мне следующие 500 пикселей изображения (слайд 2), позиционируя изображение слева: -500px. Которая сейчас работает нормально. Проблема, с которой я столкнулась, заключается в том, что изображение будет перемещаться на -1000 пикселей, показывая окончательный 500 пикселей изображения (слайд 3). Кажется, когда я добавляю третий радиовход и метку, слайдер ломается, а другие входы ничего не делают. Фактически, первый переключатель css иногда кажется бессмысленным, поскольку установка перехода на самом изображении представляется необходимым для получения желаемого эффекта для переключателя «Slide 1».CSS: Скольжение изображения с радио: проверено (Pure CSS slider)
Ссылка на изображение: http://imgur.com/a/DCiI4
HTML:
<html>
<head>
<link rel="stylesheet" type="text/css" href="default.css"/>
</head>
<body>
<div id="wrap">
<input type="radio" id="slide1" name="radio" checked>
<input type="radio" id="slide2" name="radio">
<!--<input type="radio" id="slide3" name="radio">-->
<img src="images/slides.jpg"/>
<label for="slide1">slide1</label>
<label for="slide2">slide2</label>
<!--<label for="slide3">slide3</label>-->
</div>
</body>
</html>
CSS:
html, body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
#wrap {
width: 500px;
height: 200px;
background: #000;
color: #fff;
position: relative;
/*overflow: hidden;*/
}
img {
position: absolute;
top: 20;
left: 0;
transition: .5s ease-out;
height: 200px;
width: 1500px;
}
input[type="radio"] {
display: none;
}
#slide1:checked + img {
left: 0;
transition: .5s ease-out;
}
#slide2:checked + img {
left: -500px;
transition: .5s ease-out;
}
/*#slide3:checked + img {
left: -1500px;
transition: .5s ease-out;
}*/
Цените помощь! И если есть более простой/простой способ сделать слайдер с элементами управления только в CSS, я бы с удовольствием узнал. Пробовал пару примеров, которые я нашел в Интернете, но никто не смотрит и не анимирует, как бы мне хотелось.
Спасибо Майклу, что отлично работает. Быстрый вопрос: как вы собираетесь установить задержку до того, как предыдущее изображение вернется? Итак, похоже, что новое скользящее изображение перекрывает его? Большое спасибо! – 3412127
@ 3412127 np. Вы не можете сделать это только с помощью CSS. Вам нужно будет использовать javascript. Вы действительно ограничены тем, что можете сделать, пытаясь построить что-то подобное с помощью CSS. –
@ 3412127 btw добро пожаловать в SO. Обязательно повышайте должности, если они помогают поощрять участие и показывать всем, кто ищет вашу проблему, и находит этот пост, ответы на которые хороши, а также обязательно принять ответ в какой-то момент (галочка по ответам) –