В пагинации активная страница по центру

272
01 августа 2017, 15:28

Как можно в пагинации сделать актуальную страницу по центру? Допустим, если выбрана 4 страница, то она была бы по центру, а 1-3 рядом слева, а 5-7 рядом справа. Код:

<div> 
  <a class="page">1</a> 
  <a class="page">2</a> 
  <a class="page">3</a> 
  <a class="actual_page">4</a> 
  <a class="page">5</a> 
  <a class="page">6</a> 
  <a class="page">7</a> 
</div>

Answer 1

Т.к. CSS никакого топикстартер не предоставил, на основе этого можно сделать как-то так:

$('div').each(function() { 
  var pages = $(this).find('.page'), // все ссылки 
    pagesLength = pages.length, // кол-во страниц 
    active = $(this).find('.actual_page').index() + 1, // номер активной страницы 
    pageWidth = pages.outerWidth(), // ширина ссылки 
 
    pagesRight = pagesLength - active, // кол-во страниц справа от активной 
    pagesLeft = pagesLength - pagesRight - 1, // кол-во страниц слева от активной 
    pagesDiff = (pagesLeft - pagesRight); // разница между кол-вами страниц слева и справа 
 
  if (pagesDiff < 0) { // если слева меньше 
    $(this).css({ 
      'padding-right': '0px', 
      'padding-left': pagesDiff * -1 * pageWidth + 'px' 
    }); 
  } else if (pagesDiff > 0) { // если справа меньше 
    $(this).css({ 
      'padding-left': '0px', 
      'padding-right': pagesDiff * pageWidth + 'px' 
    }); 
  } else if (pagesDiff == 0) { // если равно 
    $(this).css({ 
      'padding-left': '0px', 
      'padding-right': '0px' 
    }); 
  } 
});
div { 
  text-align: center; 
  font-size: 0px; 
  line-height: 0px; 
  position: relative; 
} 
 
div:before { 
  display: block; 
  content: ''; 
  width: 1px; 
  height: 220%; 
  background: #e1e1e1; 
  position: absolute; 
  left: 50%; 
  top: -60%; 
  z-index: -1; 
} 
 
a { 
  font-size: 16px; 
  line-height: 16px; 
  padding: 0 5px; 
  width: 10px; 
  display: inline-block; 
} 
 
a.actual_page { 
  color: #f00; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div> 
  <a class="page actual_page">1</a> 
  <a class="page">2</a> 
  <a class="page">3</a> 
  <a class="page">4</a> 
  <a class="page">5</a> 
  <a class="page">6</a> 
  <a class="page">7</a> 
</div><br /> 
<div> 
  <a class="page">1</a> 
  <a class="page actual_page">2</a> 
  <a class="page">3</a> 
  <a class="page">4</a> 
  <a class="page">5</a> 
  <a class="page">6</a> 
  <a class="page">7</a> 
</div><br /> 
<div> 
  <a class="page">1</a> 
  <a class="page">2</a> 
  <a class="page actual_page">3</a> 
  <a class="page">4</a> 
  <a class="page">5</a> 
  <a class="page">6</a> 
  <a class="page">7</a> 
</div><br /> 
<div> 
  <a class="page">1</a> 
  <a class="page">2</a> 
  <a class="page">3</a> 
  <a class="page actual_page">4</a> 
  <a class="page">5</a> 
  <a class="page">6</a> 
  <a class="page">7</a> 
</div><br /> 
<div> 
  <a class="page">1</a> 
  <a class="page">2</a> 
  <a class="page">3</a> 
  <a class="page">4</a> 
  <a class="page actual_page">5</a> 
  <a class="page">6</a> 
  <a class="page">7</a> 
</div><br /> 
<div> 
  <a class="page">1</a> 
  <a class="page">2</a> 
  <a class="page">3</a> 
  <a class="page">4</a> 
  <a class="page">5</a> 
  <a class="page actual_page">6</a> 
  <a class="page">7</a> 
</div><br /> 
<div> 
  <a class="page">1</a> 
  <a class="page">2</a> 
  <a class="page">3</a> 
  <a class="page">4</a> 
  <a class="page">5</a> 
  <a class="page">6</a> 
  <a class="page actual_page">7</a> 
</div><br />

Чтобы данный пример работал корректно, ВАЖНО, чтобы:

  • ширина ссылок пагинатора должна быть одинаковой;
  • между ссылками не должно быть никакого расстояния.
READ ALSO
Почему не работает input в форме?

Почему не работает input в форме?

Есть список товаров на jsp у каждого есть свой idПри при нажатии на кнопку More в сервлет должен приходить запрос с id товара

338
Стилизация блоков Bootstrap

Стилизация блоков Bootstrap

Доброго времени суток

336
Как найти не используемые CSS?

Как найти не используемые CSS?

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

306