我有一个时间表,需要是否上课不活跃,以更改从活跃年份开始的每一对的CSS。就是这种情况。
...
n-4
n-3
n-2
n-1
n (active year)
n+1
n+2
n+3
n+4
...
这是我尝试过的,但是按索引
$frame.sly(`on`, `active`, function (event) {
$(`.years.active`).css(`opacity`,`1`);
$(`.years.active`).siblings().eq(1).css(`opacity`,0.9`);
$(`.years.active`).siblings().eq(2).css(`opacity`,`0.8`);
$(`.years.active`).siblings().eq(3).css(`opacity`,`0.7`);
$(`.years.active`).siblings().eq(4).css(`opacity`,`0.6`);
}
的HTML
<div class="pagespan container">
<div class="wrap">
<div class="frame" id="forcecentered">
<ul class="clearfix">
<li data-target="1997" class="years">1997</li>
<li data-target="2009" class="years">2009</li>
<li data-target="2010" class="years">2010</li>
<li data-target="2013" class="years active">2013</li>
<li data-target="2015" class="years">2015</li>
<li data-target="2016" class="years">2016</li>
<li data-target="2017" class="years">2017</li>
</ul>
</div>
</div>
</div>
任何人都知道可以这样做的方式。也许有数据目标?
我要达到目标,以便从活动状态开始的每一步字体和不透明度都较小
最佳答案
使用属性来跟踪级别:
function moveForward() {
$(“.before”).each(function() {
$(this).attr(“data-pos”, $(this).attr(“data-pos”) + 1);
}
$(“.after”).each(function() {
$(this).attr(“data-pos”, $(this).attr(“data-pos”) - 1);
}
$(“.active”).toggleClass(“active before”).attr(“data-pos”, 1);
$(“.after[data-pos=‘0’]”).toggleClass(“after active”);
}
function moveBack() {
$(“.before”).each(function() {
$(this).attr(“data-pos”, $(this).attr(“data-pos”) - 1);
}
$(“.after”).each(function() {
$(this).attr(“data-pos”, $(this).attr(“data-pos”) + 1);
}
$(“.active”).toggleClass(“active after”).attr(“data-pos”, 1);
$(“.before[data-pos=‘0’]”).toggleClass(“before active”);
}
当然,您可以多次调用(或修改)这些命令以通过多个条目进行更改,并跟踪变量中的位置以实现“定位”功能。
然后你的CSS:
/* any pos greater than 9 */
.before, .after {
opacity: 0;
}
/* these selectors should be sufficient because ‘.active’ will always have no ‘data-pos’ or will have a ‘data-pos’ of 0 */
[data-pos=‘1’] {
opacity: 0.9;
}
[data-pos=‘2’] {
opacity: 0.8;
}
/* values 3-9 here */
并确保正确设置了html,例如
<div class=“before” data-pos=“2”/>
<div class=“before” data-pos=“1”/>
<div class=“active”/>
<div class=“after” data-pos=“1”/>
<div class=“after” data-pos=“2”/>
<div class=“after” data-pos=“3”/>
<div class=“after” data-pos=“4”/>