Горизонтальные страницы слайдов должны устанавливаться вверху при нажатии на кнопку «Далее».

Я создал страницы с горизонтальной прокруткой, используя Owl Carousel. Он содержит кнопки «следующая страница» и «предыдущая» внизу.

Что мне нужно:

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

Вот мой код:

$('.owl-carousel').owlCarousel({
        items: 1,
        autoplay: false,
        loop: false,
        nav: false,
        dots: false,
        center: true,
        mouseDrag: false,
        touchDrag: false,
        autoHeight: true,
        margin: 10,
        smartSpeed: 500,
        URLhashListener: true,
        autoplayHoverPause: true,
        startPosition: 'URLHash'
    });
.owl-carousel {
  position: relative;
}
.page {
    height: 10rem;
    padding: 1rem;
    height: 1500px;
}
.one {
  background: #bec4bd;
}
.two {
  background: green;
}
.three {
  background: #41253c;
}
.linkA {
  position: absolute;
  bottom: 10px;
  left: 10px;
  text-decoration: none;
  background: red;
  color: #fff;
  padding: 5px 15px;
  margin-right: 5px;
  font-family: sans-serif;
  font-size: 14px;
}
.linkB {
  position: absolute;
  bottom: 10px;
  right: 10px;
  text-decoration: none;
  background: red;
  color: #fff;
  padding: 5px 15px;
  margin-right: 5px;
  font-family: sans-serif;
  font-size: 14px;
}
<link href="https://owlcarousel2.github.io/OwlCarousel2/assets/owlcarousel/assets/owl.carousel.min.css" rel="stylesheet"/>
<link href="https://owlcarousel2.github.io/OwlCarousel2/assets/owlcarousel/assets/owl.theme.default.min.css" rel="stylesheet"/>
<script src="https://owlcarousel2.github.io/OwlCarousel2/assets/vendors/jquery.min.js"></script>
<script src="https://owlcarousel2.github.io/OwlCarousel2/assets/owlcarousel/owl.carousel.js"></script>
<div class="owl-carousel owl-theme">
    <div class="page one" data-hash="page1">
    Button at the bottom!
    <a href="#page2" class="linkB">Page 2</a>
    </div>
    
    <div class="page two" data-hash="page2">
    Button at the bottom!
    <a href="#page1" class="linkA">Page 1</a>
    <a href="#page3" class="linkB">Page 3</a>
    </div>
    
    <div class="page three" data-hash="page3">
    Button at the bottom!
    <a href="#page2" class="linkA">Page 2</a>
    </div>
</div>

JSFiddle

Хорошего дня..!

Оставайся в безопасности@дома


person vishnu    schedule 09.04.2020    source источник
comment
Для перехода наверх: https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo   -  person vishnu    schedule 09.04.2020


Ответы (1)


Вы можете использовать событие translated.owl.carousel для вызова вашей функции при изменении страницы:

owl.on('translated.owl.carousel', function(event) {
    window.scrollTo(0, 0);
})

Проверьте следующий пример:

var owl = $('.owl-carousel').owlCarousel({
    items: 1,
    autoplay: false,
    loop: false,
    nav: false,
    dots: false,
    center: true,
    mouseDrag: false,
    touchDrag: false,
    autoHeight: true,
    margin: 10,
    smartSpeed: 500,
    URLhashListener: true,
    autoplayHoverPause: true,
    startPosition: 'URLHash'
});
owl.on('translated.owl.carousel', function(event) {
    window.scrollTo(0, 0);
})
.owl-carousel {
  position: relative;
}
.page {
    height: 10rem;
    padding: 1rem;
    height: 1500px;
}
.one {
  background: #bec4bd;
}
.two {
  background: green;
}
.three {
  background: #41253c;
}
.linkA {
  position: absolute;
  bottom: 10px;
  left: 10px;
  text-decoration: none;
  background: red;
  color: #fff;
  padding: 5px 15px;
  margin-right: 5px;
  font-family: sans-serif;
  font-size: 14px;
}
.linkB {
  position: absolute;
  bottom: 10px;
  right: 10px;
  text-decoration: none;
  background: red;
  color: #fff;
  padding: 5px 15px;
  margin-right: 5px;
  font-family: sans-serif;
  font-size: 14px;
}
<link href="https://owlcarousel2.github.io/OwlCarousel2/assets/owlcarousel/assets/owl.carousel.min.css" rel="stylesheet"/>
<link href="https://owlcarousel2.github.io/OwlCarousel2/assets/owlcarousel/assets/owl.theme.default.min.css" rel="stylesheet"/>
<script src="https://owlcarousel2.github.io/OwlCarousel2/assets/vendors/jquery.min.js"></script>
<script src="https://owlcarousel2.github.io/OwlCarousel2/assets/owlcarousel/owl.carousel.js"></script>
<div class="owl-carousel owl-theme">
    <div class="page one" data-hash="page1">
    Button at the bottom!
    <a href="#page2" class="linkB">Page 2</a>
    </div>
    
    <div class="page two" data-hash="page2">
    Button at the bottom!
    <a href="#page1" class="linkA">Page 1</a>
    <a href="#page3" class="linkB">Page 3</a>
    </div>
    
    <div class="page three" data-hash="page3">
    Button at the bottom!
    <a href="#page2" class="linkA">Page 2</a>
    </div>
</div>

person Dekel    schedule 09.04.2020
comment
Большой..! Можно ли добавить функцию перехода для прокрутки вверх? - person vishnu; 09.04.2020
comment
Переход по прокрутке - это совершенно другой вопрос, но вы, вероятно, можете найти несколько решений/примеров для этого в stackoverflow :) Теперь это не должно быть слишком сложно, когда вы знаете, как/что/где это реализовать. - person Dekel; 09.04.2020
comment
Нет проблем, позвольте мне попробовать.. Хорошего дня..! - person vishnu; 09.04.2020