好的,我终于明白你想用模型做什么了。好吧,这个想法是一样的,我相信它可以通过许多其他方式实现,但我希望这个可以帮助你理解正在发生的事情。
您几乎需要两个状态(类)来实现您想要实现的操作。
保存电影细节的 div 的最小化和最大化。
#details{
z-index: 4;
position: absolute;
-webkit-transition: all ease 1s;
background-color: #2980b9;
color: white;
padding: 30px;
width: 100%;
height: 300px;
}
.minimized{
top: 100%;
}
.maximized{
top: 40%;
}
其他两个用于显示细节时位于卡片顶部的“灰色宫廷”。
#courtain{
position:absolute;
background-color: rgba(100,100,100, 0.5);
width: 100%;
height: 100%;
}
.active{
z-index: 2;
}
.deactive{
z-index: -1;
}
所有这些都必须使用带有卡片点击事件的 Javascript 进行控制或切换。
function hideAndShow(){
var details = $('#details');
var courtain = $('#courtain');
if(details.hasClass('minimized')){
courtain.removeClass('deactive');
courtain.addClass('active');
details.removeClass('minimized');
details.addClass('maximized');
}
else{
courtain.removeClass('active');
courtain.addClass('deactive');
details.removeClass('maximized');
details.addClass('minimized');
}
}
检查状态上的“z-index”值以将它们正确放置在另一个之上是很重要的,具有最高 z-index 值的那个是保持在顶部的那个。
我已经更新了JSFiddle,检查一下,希望这一切都有意义。