Горизонтальные слайд-страницы должны установить верхнюю позицию при нажатии на следующую кнопку - PullRequest
1 голос
/ 09 апреля 2020

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

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

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

Вот мой код:

$('.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

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

StaySafe@Home

1 Ответ

2 голосов
/ 09 апреля 2020

Вы можете использовать событие 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>
...