Как показать только первые несколько элементов в блоке?
На странице имеются блоки .container с вложенными в них элементами. Подскажите, пожалуйста, как показывать только первые 3 элемента в блоке? И в случае, если в блоке больше трех элементов, то остальные прятать и выводить ссылку с количеством скрытых в блоке элементов. Как это можно реализовать? Спасибо!
$(document).ready(function() {
$('.container').find('span:gt(2)').hide()
$('.container').append('<div class="add">Ещё</div>');
$('.add').append('<div class="number_hidden"></div>');
$(".number_hidden").text($(".container span").length)
});
$(".add").click(function() {
$(".container").find('span').show();
});
<style>
.container span {display: inline-block; margin: 5px; width: 20px; height: 20px; border: 1px solid black;}
.add {display: inline-block; border: none; cursor: pointer;}
.number_hidden {display: inline-block; border: none;}
</style>
<div class="container">
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
<span>5</span>
<span>6</span>
<span>7</span>
</div>
<div class="container">
<span>1</span>
<span>2</span>
<span>3</span>
</div>
<div class="container">
<span>1</span>
<span>2</span>
</div>
|
Можно так
$('.container').each(function() {
var n = $(this).children().slice(3).hide();
$('<button/>', {class: 'add', text: n.length}).insertAfter(n.last()).click(function() {
n.show()
})
});
|
Цитата:
|
скрыть после 3 элемента
LADYX,
<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
.container span:nth-child(3) ~ span{
display: none;
}
.container.more span:nth-child(3) ~ span{
display: inline-block;
}
.container span {display: inline-block; margin: 5px; width: 20px; height: 20px; border: 1px solid black;}
.add {display: inline-block; border: none; cursor: pointer;}
.container.more .add{
display: none;
}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(function() {
$(".container").each(function(i, div){
var span = $("span:gt(2)", div);
if (span.length){
var button = $(`<button class="add"> ... Ещё ${span.length}</button>`)
div = $(div).on('click', '.add', () => div.addClass('more'))
button.appendTo(div);
}
});
});
</script>
</head>
<body>
<div class="container">
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
<span>5</span>
<span>6</span>
<span>7</span>
</div>
<div class="container">
<span>1</span>
<span>2</span>
<span>3</span>
</div>
<div class="container">
<span>1</span>
<span>2</span>
</div>
</body>
</html>
|
рони,
Цитата:
Спасибо вам) |
| Часовой пояс GMT +3, время: 06:32. |