首先,提前为我的理解不足道歉。当涉及交互时,我是一个初学者。
我的目标是在按下链接时淡入或更改一个 div 的不透明度,并淡出或更改其他两个 div 的不透明度。
以下是视觉参考:
如何用 CSS 最好的方式来实现它,还是需要使用 Jquery?如果是后者,请指向一个教程方向。
我的目标是在按下链接时淡入或更改一个 div 的不透明度,并淡出或更改其他两个 div 的不透明度。
以下是视觉参考:
如何用 CSS 最好的方式来实现它,还是需要使用 Jquery?如果是后者,请指向一个教程方向。
<a href="#tab1">Link1</a>
<a href="#tab2">Link2</a>
<a href="#tab3">Link3</a>
<div id="tabs">
<div id="tab1"></div>
<div id="tab2"></div>
<div id="tab3"></div>
</div>
CSS:
#tabs > div {
opacity: 0;
transition: opacity 1s;
}
#tabs > div:target {
opacity: 1;
}
另外,你也可以使用JavaScript来添加一个.active
类代替使用哈希值和:target
。
:target
选择器。 - Oriol$('body').on('click', '.foo', function() {
$(this).animate({ // the one that you clicked on
opacity: 1 // animate its opacity to full
}, 1000, function() { // do it in one second, then call a function
$('.foo').not( $(this) ).animate({ // the ones you didn't click on
opacity: 0.2 // animate their opacity to almost transparent
}, 1000); // in one second
});
});
<div id="links">
<a>Link1</a>
<a>Link2</a>
<a>Link3</a>
</div>
<div id="tabs">
<div>Tab1</div>
<div>Tab2</div>
<div>Tab3</div>
</div>
CSS
#tabs > div.blurred {
opacity: 0.5; // set your value here
}
#tabs > div {
opacity: 1;
transition: opacity 1s;
}
$('#links > a').click(function(){
// this will get the index of the link within it's parent
var index = $(this).index();
// blur everything
$('#tabs>div').addClass('blurred');
// but keep the tab on the same index within it's parent active
$($('#tabs>div').get(index)).removeClass('blurred');
});
或者,您可以将逻辑从“模糊”更改为“活动”