改变css of li的中位数li前后
Change css of li's before and after the median li
我正在尝试制作无论数量多少都会对齐项目的导航。在 else
中,我试图在中位数 li
之前和之后给出 li
某些 css。目前所有 li
都是黄色的,因为 index
数字在完成循环后将始终大于中位数。我的 js 知识不是很好,但我每天都在学习 :)
var count = $("ul.filter__dropdown li").length;
if ( (count & 1) == 0 ) {
//even
var w = 100;
var list = $("ul.filter__dropdown li");
list.css('width', "calc( 100% /" + count + ")");
}
else {
//odd
var median = Math.round(count /= 2);
var list = $("ul.filter__dropdown li");
var count = $("ul.filter__dropdown li").length;
list.css('width', "calc( 100% /" + count + ")");
$("ul.filter__dropdown li").each(function(index) {
if ( index < median ) {
list.css("background-color" , "black");
}
if ( index == median ) {
list.css("background-color" , "green");
}
if ( index > median ) {
list.css("background-color" , "yellow");
}
})
}
您可以使用 :lt
and :gt
select 或 select 中位数之前的 li
元素和 after
一些索引,即中位数。
var total = $('li').length,
median = Math.floor(total / 2);
$('li:lt(' + median + ')').addClass('green');
$('li:gt(' + median + ')').addClass('red');
// $('li').eq(median).addClass('median');
li {
color: yellow;
}
.green {
color: green;
}
.red {
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
<li>11</li>
</ul>
你可以像
一样使用.slice()
var $lis = $("ul.filter__dropdown li"),
count = $lis.length;
if ((count & 1) == 0) {
//even
var w = 100;
$lis.css('width', "calc( 100% /" + count + ")");
} else {
//odd
var median = Math.round(count / 2);
$lis.css('width', "calc( 100% /" + count + ")");
$lis.slice(0, median - 1).css("background-color", "black");
$lis.eq(median - 1).css("background-color", "green");
$lis.slice(median).css("background-color", "yellow");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul class="filter__dropdown">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
你可以像这样合并宽度值
var $lis = $("ul.filter__dropdown li"),
count = $lis.length;
$lis.css('width', "calc( 100% /" + count + ")");
if ((count & 1) != 0) {
//odd
var median = Math.round(count / 2);
$lis.css('width', "calc( 100% /" + count + ")");
$lis.slice(0, median - 1).css("background-color", "black");
$lis.eq(median - 1).css("background-color", "green");
$lis.slice(median).css("background-color", "yellow");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul class="filter__dropdown">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
我正在尝试制作无论数量多少都会对齐项目的导航。在 else
中,我试图在中位数 li
之前和之后给出 li
某些 css。目前所有 li
都是黄色的,因为 index
数字在完成循环后将始终大于中位数。我的 js 知识不是很好,但我每天都在学习 :)
var count = $("ul.filter__dropdown li").length;
if ( (count & 1) == 0 ) {
//even
var w = 100;
var list = $("ul.filter__dropdown li");
list.css('width', "calc( 100% /" + count + ")");
}
else {
//odd
var median = Math.round(count /= 2);
var list = $("ul.filter__dropdown li");
var count = $("ul.filter__dropdown li").length;
list.css('width', "calc( 100% /" + count + ")");
$("ul.filter__dropdown li").each(function(index) {
if ( index < median ) {
list.css("background-color" , "black");
}
if ( index == median ) {
list.css("background-color" , "green");
}
if ( index > median ) {
list.css("background-color" , "yellow");
}
})
}
您可以使用 :lt
and :gt
select 或 select 中位数之前的 li
元素和 after
一些索引,即中位数。
var total = $('li').length,
median = Math.floor(total / 2);
$('li:lt(' + median + ')').addClass('green');
$('li:gt(' + median + ')').addClass('red');
// $('li').eq(median).addClass('median');
li {
color: yellow;
}
.green {
color: green;
}
.red {
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
<li>11</li>
</ul>
你可以像
一样使用.slice()var $lis = $("ul.filter__dropdown li"),
count = $lis.length;
if ((count & 1) == 0) {
//even
var w = 100;
$lis.css('width', "calc( 100% /" + count + ")");
} else {
//odd
var median = Math.round(count / 2);
$lis.css('width', "calc( 100% /" + count + ")");
$lis.slice(0, median - 1).css("background-color", "black");
$lis.eq(median - 1).css("background-color", "green");
$lis.slice(median).css("background-color", "yellow");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul class="filter__dropdown">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
你可以像这样合并宽度值
var $lis = $("ul.filter__dropdown li"),
count = $lis.length;
$lis.css('width', "calc( 100% /" + count + ")");
if ((count & 1) != 0) {
//odd
var median = Math.round(count / 2);
$lis.css('width', "calc( 100% /" + count + ")");
$lis.slice(0, median - 1).css("background-color", "black");
$lis.eq(median - 1).css("background-color", "green");
$lis.slice(median).css("background-color", "yellow");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul class="filter__dropdown">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>