方法一
使用 jQuery 代码可以更轻松地完成此操作。
HTML
<img id="img1"/>
<img id="img2"/>
<div id="div1"/>
<div id="div2"/>
<div id="div3"/>
<div id="div4"/>
JQUERY
->
JQUERY
$("#img1").on('click', function() {
$(this).hide();
$("#div2, #div3, #div4").hide();
$("#div1").show();
});
当点击图片时,只需将show/hide替换为您想要显示或隐藏的内容即可。
顶级提示:
您还可以将show/hide替换为toggle()或fadeIn()/fadeOut()
toggle():每次单击时会在display block和display none之间交替显示。
fadeIn():与show()相同,但带有漂亮的淡入动画。
方法2
新方式是使用CSS动画。测试表明,CSS在处理动画方面的性能比jQuery更好。
HTML
<div id="imgWrap">
<img id="img1" class="Active" data-box="div1"/>
<img id="img2" data-box="div2"/>
<img id="img3" data-box="div3"/>
<img id="img4" data-box="div4"/>
</div>
<div id="divWrap">
<div id="div1" class="Active">1</div>
<div id="div2">2</div>
<div id="div3">3</div>
<div id="div4">4</div>
</div>
CSS
#divWrap div{
opacity:0;
}
#divWrap .Active{
opacity:1;
-webkit-animation:fadeIn ease-in-out 0.5s;
animation:fadeIn ease-in-out 0.5s;
}
@-webkit-keyframes fadeIn{
from{opacity:0;}
to {opacity:1;}
}
@keyframes fadeIn{
from{opacity:0;}
to {opacity:1;}
}
如果您不希望元素在不可见时占用页面空间,请将display:none/block
与opacity
(请参见fiddle)一起添加。
使用CSS的美妙之处在于您可以将动画制作成任何您想要的样子。当向元素添加Active
类时,此代码将简单地触发动画。
这里提供了一些动画示例。
JAVASCRIPT
$('img').on('click', function () {
var divID = $(this).attr('data-box');
$(this).addClass('Active').siblings().removeClass('Active');
$('#' + divID).addClass('Active').siblings().removeClass('Active');
})
最后,像上面那样添加一些JavaScript或jQuery来在单击时添加Active类。在此示例中,已将Active硬编码为HTML中的一个元素,以创建默认的活动元素。
该代码还将Active添加到所点击的按钮。这是可选的,但可以用于向当前活动按钮添加CSS样式。