Я хочу добавить класс css, когда пользователь достигает элемента.
var pag_offset = $('.pagination_extra').offset();
$('.pagination-wrapper').addClass('pagination-wrapper-fixed');
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() < $(window).height() + pag_offset.top - 100) {
$('.pagination-wrapper').addClass('pagination-wrapper-fixed');
} else {
$('.pagination-wrapper').removeClass('pagination-wrapper-fixed');
}
});
.pagination_extra {
display: inline-block;
width: 100%;
}
.pagination-wrapper a {
text-decoration: none;
cursor: pointer;
}
.pagination-wrapper {
text-align: center;
margin:auto;
width: 50%;
}
.pagination-wrapper-fixed {
position: fixed;
bottom: 0;
z-index: 7;
width: 100%;
margin-bottom: 8px;
}
.pagination {
display: inline-block;
height: 70px;
margin-top: 10px;
padding: 0 25px;
border-radius: 35px;
background-color: #eee;
}
@media only screen and (max-width: 1199px) {
.pagination {
height: 50px;
padding: 0 10px;
border-radius: 25px;
}
}
.page-numbers {
display: block;
padding: 0 25px;
float: left;
transition: 300ms ease;
color: #595959;
font-size: 20px;
line-height: 70px;
font-family: nazanin;
}
.page-numbers:hover, .page-numbers.current {
background-color: #86c023;
color: #fff;
}
.page-numbers.prev:hover, .page-numbers.next:hover {
background-color: transparent;
color: #86c023;
}
@media only screen and (max-width: 1199px) {
.page-numbers {
padding: 0 15px;
font-size: 16px;
line-height: 50px;
}
}
@media only screen and (min-width: 120px) and (max-width: 1024px) {
.page-numbers {
padding: 0 14px;
display: none;
}
.page-numbers:nth-of-type(2) {
position: relative;
padding-right: 50px;
}
.page-numbers:nth-of-type(2)::after {
content: "...";
position: absolute;
font-size: 25px;
top: 0;
left: 45px;
}
.page-numbers:nth-child(-n + 3), .page-numbers:nth-last-child(-n + 3) {
display: block;
}
.page-numbers:nth-last-child(-n + 4) {
padding-right: 14px;
}
.page-numbers:nth-last-child(-n + 4)::after {
content: none;
}
}
<h1>foo<br></h1><h1>foo<br></h1><h1>foo<br></h1><h1>foo<br></h1><h1>foo<br></h1><h1>foo<br></h1><h1>foo<br></h1><h1>foo<br></h1><h1>foo<br></h1><h1>foo<br></h1><h1>foo<br></h1><h1>foo<br></h1>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="pagination_extra"></div>
<div class="pagination-wrapper">
<div class="pagination">
<a class="prev page-numbers">←</a>
<a class="page-numbers">1</a>
<a class="page-numbers">2</a>
<a class="page-numbers">3</a>
<a class="page-numbers">4</a>
<a class="next page-numbers">→</a>
</div>
</div>
<h1>foo<br></h1><h1>foo<br></h1><h1>foo<br></h1><h1>foo<br></h1><h1>foo<br></h1><h1>foo<br></h1>
Когда пользователь достигает элемента .pagination_extra
, он должен добавить класс CSS.
Проблема в том, что это не точный, когда он не достигнет элемента, он удалит класс.
Поэтому я попытался добавить или вычесть значение смещения, например pag_offset.top - 100
, но оно изменится на другом размере экрана.
Как я могу сделать так, чтобы когда пользователь достиг элемента .pagination_extra
, он менял класс?