首先要做的是将您的面板 HTML 元素移近主网格元素。这允许您按顺序隐藏/显示正确的元素。将所有面板放在自己的单独元素中会导致您不应该需要进行 DOM 操作。为简单起见,我将每个面板放在与其关联的主网格元素之后。
HTML结构
<div class=".mainContainer">
<div class='maingrid'></div>
<div class='panel'></div>
<div class='maingrid'></div>
<div class='panel'></div>
<div class='maingrid'></div>
<div class='panel'></div>
<div class='maingrid'></div>
<div class='panel'></div>
</div>
我添加了面板类以具有与主网格相同的 CSS,并使其在开始时不可见:
.maingrid, .panel {
height: 345px;
width: 345px;
float: left;
/* [disabled]background-color: #000; */
margin-top: 5px;
margin-right: 5px;
cursor: pointer;
overflow: hidden;
}
.panel{
display:none;
color:white;
}
这将淡出当前单击的元素并淡入下一个面板元素。
$('.maingrid').click(function(){
var $that = $(this);
$(this).fadeOut(function(){ //This will wait until the fadeOut is done before attempting to fadeIn.
$that.next().fadeIn();
});
});
$('.panel').click(function(){
var $that = $(this);
$(this).fadeOut(function(){
$that.prev().fadeIn();
});
});
似乎还有一个错误,悬停不显示第一个悬停事件的文本。
JSFiddle:http: //jsfiddle.net/mDJfE/