ZorNet.Ru — сайт для вебмастера » JavaScript и jQuery » Адаптивный слайдер для слайд-шоу в CSS

Адаптивный слайдер для слайд-шоу в CSS

Адаптивный слайдер для слайд-шоу в CSS
Отличное решение для создания слайд-шоу изображений с использованием HTML и CSS, где идет адаптивный дизайн, где присутствуют функций для работы. Самом слайд-шоу является презентацией кратных изображений, которые воспроизводятся в формате видео последовательности. Также в нем присутствуют все элементы управления для воспроизведения, паузы и перемотки с право налево или наоборот.

Для этого ниже расположены кнопки, которые появится по нижним углам, только тогда, когда вы наведете клик на картинку или на корпус слайдера. Но и форма у него оригинальная, ведь многие привыкли видеть слайд с углами, здесь же они полностью отсутствуют.

В этой статье представлен полностью рабочий слайд, где имеется оригинальный переход картинок с элементами управления. Также можно задействовать слайдер на своем сайте в качестве раздела для презентации изображений. Это больше касается интернет магазинов, что будет отличным приложением на любой площадке, где идет презентация, а также вывод самой актуальной информации, что по клику производится переход на основной материал.

Проверяя по работе и на адаптивность, где все отлично работает, и корректно выводит информацию.

Слайдер на CSS3 для сайта

Установочный процесс:

Для начало нужно подключить кнопки, что идут на переключатели и паузу с пуском, где идет библиотека, что полностью отвечает за функционал, без не не одна функция не будет активна, что аналогично прописываем.

Код
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" type="text/css">
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js'></script>

HTML

Код
<div class="peremotka-slayderan">
  <img src="http://zornet.ru/_fr/56/3344329.jpg">
  <img src="http://zornet.ru/_fr/56/2312403.jpg">
  <img src="http://zornet.ru/_fr/56/6997911.jpg">
  <img src="http://zornet.ru/_fr/56/5713094.jpg">
  <span class="pereklyuchatel material-icons">pause</span>
  <span class="dailog">Нажмите, чтобы запустить</span>
  <div class="icons">
  <span class="back material-icons">fast_rewind</span>
  <span class="next material-icons">fast_forward</span>
  </div>
</div>

CSS

Код
.peremotka-slayderan {
  width: 960px;
  height: 540px;
  background-color: lightgrey;
  margin: 0 auto;
  margin-top: 10%;
  overflow: hidden;
  position: relative;
  border-radius: 25px;
  transition: all 0.5s ease;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  z-index: 30;
}
.peremotka-slayderan:hover .icons {
  transform: translateX(0);
}
.peremotka-slayderan:hover .pereklyuchatel.paused {
  bottom: 0;
  left: 0;
  border-radius: 0 25px;
  transform: none;
  font-size: 40px;
  color: white;
  background: rgba(0,0,0,0.5);
}
.peremotka-slayderan:hover .dailog {
  opacity: 0;
  transform: translateY(-100%);
  transition: all 0.5s ease 0.5s;
}
.pereklyuchatel:hover:active, .pereklyuchatel.paused:hover:active {
  transition: all 0s ease;
  transform: scale(0.85,0.85);
  background: rgba(0,0,0,0.6);
  box-shadow: 0 0 0 5px rgba(255,255,255,0.25);
}
.dailog {
  position: absolute;
  top: 0;
  z-index: 25;
  color: white;
  font-size: 22px;
  color: white;
  right: 0;
  left: 0;
  text-align: center;
  height: 100px;
  line-height: 50px;
  background: linear-gradient(to bottom, rgba(0,0,0,0.6), rgba(0,0,0,0));
  transition: all 0.5s ease 1s;
  display: none;
  transform: translateY(0);
}
.dailog.show {
  display: block;
}
.caption {
  position: absolute;
  bottom: 0;
  z-index: 25;
  color: white;
  font-size: 20px;
  color: white;
  display: block;
  text-align: center;
  height: 35px;
  line-height: 35px;
  background: rgba(0,0,0,0.5);
  transition: all 0.5s ease 1s;
  transform: translateY(0);
  left: 50%;
  transform: translateX(-50%);
  padding: 0 10px;
  border-radius: 6px 6px 0 0;
}
.icons {
  background: linear-gradient(to bottom right, rgba(0,0,0,0) 50%, rgba(0,0,0,0.75));
  position: absolute;
  z-index: 25;
  bottom: 0;
  right: 0;
  padding: 35px 10px 0 55px;
  border-radius: 100% 0 25px 0;
  transition: all 0.25s ease;
  transform: translate(100%, 100%);
}
.icons .material-icons {
  padding: 3px 0;
  margin: 0;
  cursor: pointer;
  transition: all 0.25s ease;
  color: white;
  font-size: 30px;
}
.icons:hover .material-icons {
  font-size: 40px;
  padding: 5px 0;
}
.icons .material-icons:active {
  transition: all 0s ease;
  transform: scale(1.25, 1.25);
}
.pereklyuchatel {
  z-index: 25;
  position: absolute;
  bottom: 0;
  font-size: 30px;
  left: 0;
  background: rgba(0,0,0,0.4);
  border-radius: 0 25px;
  color: white;
  padding: 3px;
  transition: all 0.25s ease;
  cursor: pointer;
  -webkit-backdrop-filter: blur(5px);
}
.pereklyuchatel:hover {
  font-size: 40px;
  background: rgba(0,0,0,0.5);
  padding: 5px;
}
.pereklyuchatel.paused {
  font-size: 40px;
  padding: 5px;
  transform: translate(-50%, 50%);
  left: 50%;
  bottom: 50%;
  border-radius: 50%;
  font-size: 50px;
  background: rgba(0,0,0,0.7);
}
img {
  width: 960px;
  height: 540px;
  position: absolute;
  background-color: white;
  border-radius: 0 0 25px 25px;
  transition: all 0.5s ease;
}
img.hide {
  transition: transform 1s ease, opacity 0.5s ease 0.5s;
  opacity: 0;
  transform: scale(2, 2) translateY(-80%);
}
img:first-child {
  z-index: 4;
}
img:nth-child(2) {
  z-index: 3;
}
img:nth-child(3) {
  z-index: 2;
}
img:last-child {
  z-index: 1;
}
@media screen and (max-width: 1000px) {
  img {
  width: 800px;
  height: 450px;
  }
  .peremotka-slayderan​ {
  width: 800px;
  height: 450px;
  }
}

@media screen and (max-width: 825px) {
  img {
  width: 640px;
  height: 360px;
  }
  .peremotka-slayderan {
  width: 640px;
  height: 360px;
  }
}
@media screen and (max-width: 665px) {
  img {
  width: 480px;
  height: 270px;
  }
  .peremotka-slayderan {
  width: 480px;
  height: 270px;
  }
}
@media screen and (max-width: 485px) {
  img {
  width: 320px;
  height: 180px;
  }
  .peremotka-slayderan {
  width: 320px;
  height: 180px;
  }
}

@keyframes shake {
  0% { }
  25% {transform: rotate(15deg)}
  50% {transform: rotate(-15deg)}
  75% {transform: rotate(15deg)}
  100% {transform: rotate(0deg)}
}

JS

Код
var img = document.getElementsByTagName('IMG');

var slideShow = function() {
  if (!img[0].classList.contains('hide')) {
  img[0].classList.add('hide');
  } else if (!img[1].classList.contains('hide')) {
  img[1].classList.add('hide');
  } else if (!img[2].classList.contains('hide')) {
  img[2].classList.add('hide');
  } else {
  img[0].classList.remove('hide');
  img[1].classList.remove('hide');
  img[2].classList.remove('hide');
  }
};

var reverse = function() {
  if (img[2].classList.contains('hide')) {
  img[2].classList.remove('hide');
  } else if (img[1].classList.contains('hide')) {
  img[1].classList.remove('hide');
  } else if (img[0].classList.contains('hide')) {
  img[0].classList.remove('hide');
  } else {
  img[2].classList.add('hide');
  img[1].classList.add('hide');
  img[0].classList.add('hide');
  }
}

var start = setInterval(slideShow, 3000);

var toggled = true;

function toggle(bool) {
  if (toggled | bool) {
  clearInterval(start);
  toggled = false;
  $('.pereklyuchatel').html('play_arrow');
  $('.pereklyuchatel').addClass('paused');
  $('.dailog').addClass('show');
  } else {
  start = setInterval(slideShow, 3000);
  toggled = true;
  $('.pereklyuchatel').html('pause');
  $('.pereklyuchatel').removeClass('paused');
  $('.dailog').removeClass('show');
  }
}

var transition = false;

$('.peremotka-slayderan').click(function(e) {
  if ($(e.target).is('.pereklyuchatel')) {
  toggle();
  } else if ($(e.target).is('.next')) {
  toggle(true);
  if (transition == false) {
  transition = true;
  setTimeout(function() {
  slideShow();
  transition = false;
  }, 250);
  }
  } else if ($(e.target).is('.back')) {
  toggle(true);
  if (transition == false) {
  transition = true;
  setTimeout(function() {
  reverse();
  transition = false;
  }, 250);
  }
  } else {
  toggle();
  }
});

function launchIntoFullscreen(element) {
  if(element.requestFullscreen) {
  element.requestFullscreen();
  } else if(element.mozRequestFullScreen) {
  element.mozRequestFullScreen();
  } else if(element.webkitRequestFullscreen) {
  element.webkitRequestFullscreen();
  } else if(element.msRequestFullscreen) {
  element.msRequestFullscreen();
  }
}
function exitFullscreen() {
  if(document.exitFullscreen) {
  document.exitFullscreen();
  } else if(document.mozCancelFullScreen) {
  document.mozCancelFullScreen();
  } else if(document.webkitExitFullscreen) {
  document.webkitExitFullscreen();
  }
}

var fullscreen = false;

$('.peremotka-slayderan').dblclick(function(e) {
  if (!$(e.target).is('.material-icons')) {
  fullscreen ? exitFullscreen() : launchIntoFullscreen(document.documentElement);
  fullscreen ? fullscreen = false : fullscreen = true;
  }
});

Здесь запускается и останавливается автозапуск изображений, где как уже было ранее сказано, под функцию перелистывание изображений присутствуют две кнопки, которые органично вписываются в общею стилистику.

В слайд-шоу загружено по умолчанию четыре снимка, где у вас появляется функция на добавление больше изображений, то количество, которое вам нужно для вывода по требованию.

Демонстрация

Видео обзор:



Для создания слайда было задействовано 3 файла, где первый предназначен для HTML, второй идет на стили CSS и третий для JavaScript. Следуйте инструкциям по созданию, где все получится установить без каких-либо ошибок.

Так как по своей форме он может быть на главной странице, и по дизайну также можно увидеть в блоке, где все должно автоматически встать по месту, ведь изначально задана ширина на 100% или полный экран.

Где адаптивность будет корректно выводить картинку с его уменьшением, а по этому место под установку становится автоматически больше.
18 Августа 2019 Загрузок: 4 Просмотров: 1106 Комментариев: (0)

Поделиться в социальных сетях

Материал разместил

Оставь свой отзыв

Комментарии: 0
avatar