Как реализовать такой слайдер? (фото в приложении)

204
17 ноября 2018, 12:20

При верстке лендинга столкнулась с таким слайдером. Конкретно интересует, как реализовать перемещение левого и правого слайда в центр? Ранее с подобными задачами не сталкивалась. Буду благодарна, если подскажете библиотеку или примерно суть реализации. Заранее спасибо!

Answer 1

Пример с slick-slider

$('.slider').slick({ 
  slidesToShow:3, 
  centerMode:true, 
  centerPadding:0, 
  focusOnSelect:true 
})
*{ 
  box-sizing:border-box; 
} 
*:focus{ 
  outline:none; 
} 
.slide:before{ 
  content:''; 
  display:block; 
  min-height:100px; 
  background:radial-gradient(circle at center,yellow,orange); 
  opacity:.5; 
  transform-origin:center; 
  transform:scale(.6); 
  transition:all .5s ease; 
} 
.slide.slick-center:before{ 
  opacity:1; 
  transform:scale(1); 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<script src="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script> 
<link href="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css" rel="stylesheet"/> 
 
<div class="slider"> 
  <div class="slide"></div> 
  <div class="slide"></div> 
  <div class="slide"></div> 
  <div class="slide"></div> 
</div>

Answer 2

let sliderArr = {}; 
let current = 0; 
let max; 
for (let i = 1; i < document.getElementById("slider").children.length - 1; i++) { 
  sliderArr[String(i)] = document.getElementById("slider").children[i]; 
  if (document.getElementById("slider").children[i].classList.contains("active")) { 
    current = i; 
  } 
  max = i; 
} 
document.getElementsByClassName("arrowLeft")[0].onclick = function() { 
  if (current > 1) { 
    $(sliderArr[current]).animate({ 
      height: '100px', 
      marginTop: '100px', 
      width: '100px' 
    }); 
    $(sliderArr[current - 1]).animate({ 
      height: '150px', 
      marginTop: '75px', 
      width: '150px' 
    }); 
    current--; 
  } 
} 
 
document.getElementsByClassName("arrowRight")[0].onclick = function() { 
  if (current < max) { 
    $(sliderArr[current]).animate({ 
      height: '100px', 
      marginTop: '100px', 
      width: '100px' 
    }); 
    $(sliderArr[current + 1]).animate({ 
      height: '150px', 
      marginTop: '75px', 
      width: '150px' 
    }); 
    current++; 
  } 
}
#slider { 
  float: left; 
  width: 430px; 
  height: 300px; 
  margin-left: 5%; 
  margin-right: 5%; 
  overflow: hidden; 
  user-select: none; 
} 
 
.arrow { 
  width: 40px; 
  height: 100%; 
  line-height: 300px; 
  font-size: 30px; 
  cursor: pointer; 
  text-align: center; 
} 
 
.arrowLeft { 
  float: left; 
} 
 
.arrowRight { 
  float: right; 
} 
 
.slide { 
  float: left; 
  width: 150px; 
  height: 150px; 
  background: #333; 
  margin-top: 75px; 
} 
 
.slide1 { 
  width: 100px; 
  height: 100px; 
  margin-top: 100px 
} 
 
.slide3 { 
  width: 100px; 
  height: 100px; 
  margin-top: 100px 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div id="slider"> 
  <div class="arrow arrowLeft"> 
    <</div> 
      <img class="slide slide1"> 
      <img class="slide slide2 active"> 
      <img class="slide slide3"> 
      <div class="arrow arrowRight">></div> 
  </div>

READ ALSO
Получение координаты Y от начало объекта до конца или слайдер громкости для видео плеера

Получение координаты Y от начало объекта до конца или слайдер громкости для видео плеера

ЗдравствуйтеВозникла одна маленькая проблема в создание слайдера громкости для видео плеера

179
Bootstrap 4: зачем нужен метод $(&#39;.alert&#39;).alert()

Bootstrap 4: зачем нужен метод $('.alert').alert()

Приведённый пример (скопирован 1 в 1 из документации) состоит из одного лишь только HTML-кодаAlert прекрасно закрывается без единой строчки самостоятельно...

190
Margin в % внутри flex-элемента

Margin в % внутри flex-элемента

Почему, когда элементу, который находится внутри flex-элемента, ставишь margin в % сам flex-элемент не расширяется, а если ставить margin в px, то flex-элемент...

183
Плавное изменение цвета фона строки

Плавное изменение цвета фона строки

Подскажите пожалуйста, как плавно изменить цвет фона поднятой строки на дефолтный(погасить)? На данный момент она гаснет(через setTimeout()), но резковыглядит...

202